Tweaked how hooks are called with inheritance

# Why?
A class's `ancestors` property contains the class's inheritance chain, including modules. If one of those modules doesn't have `arkenstone_hooks` on it, hooks will not be inherited, even with the `inherit_hooks` flag set. This causes unexpected behavior.

# What Changed?
The whole inheritance tree is walked.