Applicative Order Reduction in the Lambda Calculus