Read model querying, instance exec blocks in the relation

This makes a minor change to read model querying. When a block
is passed to any of the query DSL methods, the block will now
be evaluated in the relation's context. This means that you can
access the scope in the block using `self`. This is really only
useful when using the `merge` query method. The scope can then
be modified as desired, and the result will be merged. This should
allow anything you can do with an ActiveRecord relation to be
done with a read model.