Extract HookLoader responsibility from HookRunner

The `HookRunner` class was taking on too much responsibility by
attempting to handling loading, running, and printing the result of
hooks.

One clear opportunity was to extract the loading of hooks into separate
loader classes (one for built-in hooks and another for plugins).

This also sets us up to allow each of these classes to perform
additional checks down the road (like warning the user if the plugin has
changed).

Change-Id: I911c1c61bc4c77bcbca84e8748db9a53812477cb
Reviewed-on: http://gerrit.causes.com/37381
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>