Support merging searches using shared context

When merging search criteria, it's necessary to use the same join dependency with a shared alias tracker. This can be achieved by passing a context option when building a Search object.

I've added the option and exposed `Context#alias_tracker`.