[DROOLS-64] [DROOLS-113] Cleanup applyTrait method, support imperfect don