Hooks v1

 - added jshint
 - updated nested properties test with more edge cases
 - implement a bunch of hooks tests 
 - moved tests for a certain feature to seperate file for easier test running.

I made a bunch of atomic commits, might be easier to review commits.

cc @Matt-Esch @neonstalwart