fix($interval): do not invoke $apply when invokeApply is false

This CL allows $q Deferred objects to avoid invoking $rootScope.$digest, by
optionally adding asynchronously invoked functions to a different queue which
is processed outside of $digest.

Closes #7103