test(directives): add missing tests where $apply should be called

Add tests for several directives (input, select, ngClick, and ngSwipe)
to check that $apply is called on change.
feat($rootScope): add $applyFn method

Add a new $applyFn method to $rootScope that wraps an expression with
$apply and returns a function. This is especially useful with event
binding and third party libraries that require callbacks.