Big code refactor
Rewrite hook processing to minimize matching time
Rename hooks to hook providers
Change HookingPass to use an annotation
Add javadocs to readme
Remove hook conditions