Support merging joins across searches using a 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 Search objects.

Rails 3.0: use Model.joins(context.join_associations) to merge relations
with JoinAssociations.

Since Rails 3.1: can use Model.joins(context.join_sources) to merge
relations with Arel::Join nodes.

Since Rails 4.1: only context.join_sources is available as Arel,
context.join_associations stops being supported.
Merge branch 'shared-context' into integration

* shared-context:
  Support merging joins across searches using a shared context

Conflicts:
	spec/ransack/adapters/active_record/context_spec.rb
	spec/ransack/search_spec.rb