Switch the mailers to be invoked using ids, not model objects. This makes it easier to support asynchronous mail jobs, as only simple ids need to be persisted.

Fixes #2808
Better factory integration for extensions.

Related to #2780
Update extension README, detailing new factories integration.

Related to #2780
Find visible select2-input element within promotion_adjustments_spec
Select correct element in order_details_spec to alter the quantity of

This test was working for SQLite, but in MySQL+PostgreSQL the order was different, causing the test to break.
Target correct element in stock_managment_spec

This test worked in SQLite+MySQL, but not in PostgreSQL. This commit fixes that.
Fix incorrect syntax in products/_thumbnails for @product.variant_images
Fix issue where two 'Clothing' taxons were being created in taxons_spec
Fix issue where, if using routing-filter, taxon autocomplete would break

Fixes #2248

This is due to the URL provided by spree.admin_search_taxons_url returning something like http://localhost:3000/admin/taxons?locale=en and then the code was appending '?ids=1' to the end of this, which is obviously an incorrect URL.

This new solution is more bulletproof.

Conflicts:
	backend/app/assets/javascripts/admin/spree_backend.js
	backend/app/assets/javascripts/admin/taxon_autocomplete.js.erb
	core/app/views/spree/admin/shared/_routes.html.erb
Add update only shared example.

Fixes #2861
Fixes #2788 allowing use of config.threadsafe!

Fixes #2852
Should not use dom id new_product twice.

Fixes #2852
Use fully-qualified constant when referencing Package within Spree::Stock::Splitter::Base

Fixes #2832
Fixed prototype add fields selector

Fixes #2761