Aspektprogrammering, aspektorienterad programmering (AOP)