Improved hooks with inheritance. Cache for belongs_to.

### Hook Inheritance
There is now a flag that can be used to allow hooks to be used with inherited models. If you have a base model like:

    class BaseModel
      include Arkenstone::Document

      add_hook SomeHook
    end

And use the `inherit_hooks` on subclasses, Arkenstone will walk the inheritance chain and call hooks for the subclass *and* its ancestors.

    class ChildModel < BaseModel
      inherit_hooks
    end

### Cached belongs_to
Also added a cache for `belongs_to`. Similarly to `has_many`, you can access the cached version with `cached_[ParentModelName]`.