Break internal hook API

Hooks now inherit from Tangerine::Hook and implement the run method
instead of being just code storage.

This allows more flexibility as every hook now also knows the caller's
context, by knowing its type.  More features may be added later, too.

Signed-off-by: Petr Šabata <contyk@redhat.com>