Don't call select2 for product_taxons_id element if the element isn't on the page

Fixes #2245
Don't call select2 for user_picker in spree_promo.js if that element does not exist

Fixes #2245
Ensure ProductsController#show doesn't blow up if HTTP_REFERER is an invalid URL

Remember kids: The Internet is *not* your friend.

Fixes #2249
Fix core/spec/requests/admin/orders/order_details_spec.rb
Fixed the call to select_month and select_year

Signed-off-by: Tommaso Visconti <tommaso.visconti@gmail.com>

Fixes #2259
Bump awesome_nested_set to 2.1.5
keyword changed to keywords in taxon show

Fixes #2258

Fixes #2270
Added BSD-3 license with copyright.

Copyright to Spree Commerce Inc. and other contributors.

Fixes #2274
Allow option values to be deleted from the admin backend

Fixes #2277

Conflicts:

	core/app/assets/javascripts/admin/admin.js.erb
	core/app/helpers/spree/admin/base_helper.rb
Fix analytics_header override

Broken by a29eb288c64a2ab397e043c63332f050c5d41af4
Guarding against Jirafe false positive conversions

Fixes #2273

Fixes #2211

Fixes #2157
Fix issue where a blank credit card type would cause the order details page to complain about a missing asset

Fixes #2282

Conflicts:

	core/spec/requests/order_spec.rb
Delete unused this_file_language translation
Only transition to complete if payment is required and there is a payments record OR if there is no payment required

Conflicts:

	core/app/models/spree/order.rb
	core/spec/models/order/checkout_spec.rb
	core/spec/models/order/state_machine_spec.rb
Refactor .travis.yml

Conflicts:

	.travis.yml
[api] Pre-ship all shipments and inventory units to fix ReturnAuthorizations specs
Test engines parallely with Travis

Closes #2267
Refactor .travis.yml
[api] Fix failing capture payment test
Add OrderWalkthrough testing support class and use it to fix admin/orders/shipments_spec

I discovered yesterday afternoon that Factory Girl isn't *really* appropriate for dealing with such a complex object as an Order within Spree.

An Order comes in many different shapes and sizes and sometimes we want to deal with it at different points in it's 'life'. Creating factories for each of these points is rather difficult, and so I made the OrderWalkthrough class which is a no-bullshit class for walking through an Order up to a specific point and then working with that object.

Ideally, this will help simplify a lot of the other integration tests within Spree that need to work within the context of an Order

Conflicts:

	core/spec/requests/admin/orders/shipments_spec.rb