Halts the callbacks chain if a callback is falsey

See https://github.com/apotonick/hooks/issues/10

`run_hook_for` has to return a boolean so that callbacks can be aggregated like [this](https://github.com/fredwu/datamappify/blob/29cb509ef2cbf1e8e77cac75f702d2a1e2411fae/lib/datamappify/repository/query_method/callbacks.rb#L55-L68):

```ruby
# @param types [Array<Symbol]
# an array of types (e.g. :create, :update, :save or :destroy)
#
# @param filter [Symbol]
# e.g. :before or :after
#
# @param entity [Entity]
#
# @return [Boolean]
def run_hooks(types, filter, entity)
  types.take_while do |type|
    run_hook(hook_for(type, filter), entity)
  end.length == types.length
end
```