Separate hooks into a new file that doesn't need to be required.

This change separates the "hooks" into a new file. The default use case doesn't change (when you require the whole thing), but it allows you to require assets, migrations and hooks separately (or in my case, use my own hooks).

Let me know what you think.