feat($safeApply): implement a better $safeApply via decorators

The previous factory method was bad because it did not adheres to the
scope.$apply syntax.
feat(keycodes): add tab
feat(keycodes): add pg up and pg down
refactor(dropdown): completely rewrite the dropdown directive
style(dropdown): remove unused injection $timeout
test(frontkit): stop using jQuery for tests

By stopping with jQuery usage, we also needed to make changes in the way we triggered the space keypress for radio/checkbox test suites.
style(dropdown): add missing semicolons
style($safeApply): use a while loop with assignment inside

To avoid problems with JSHint, we're no longer using assignments in the while of a do-while.
Instead, we better use a simple while loop with this assignment inside of its body.
chore(jshint): use specific .jshintrc file for test specs

As test specs has lots of globals more than the source files, it's better to have
an specific .jshintrc file for the test specs than having a jshint comment block
in each spec file, as we used to have.