Add circle CI setup

fixes #5506
Implement a state lock version to prevent race conditions in checkout controller. refs #4190

Fix broken specs.

Add regression test for state lock version. Fixes #4190
Not every payment method has to handle cancel

according to these two issues
https://github.com/spree/spree/issues/5307
https://github.com/netguru/spree_payu_integration/issues/5
I believe we has to check if cancel method is available before call it.
raise error if payment_method sub-class doesn't override cancel

fixes #5495
remove extra dependent destroy from variants
fixes #5511
Use includes instead of eager_load to ensure images are returned in correct order.

Fixes #5513
Improve the shipment ship api docs to show proper response.
Add upgrade guide and link to it from release notes.
Adding validations for meta_* fields to match Database-constraints.

This fixes #5514. When using MySQL and inserting text into a string
field, the database will flunk if you commit over 255 characters.
This patch adds a few validations to make sure the various
meta_*-fields, using strings in the database, will contraint the lenght
with a maximum of 255 characters.

Fixes #5514
Fixes #5516
create the partial for the promotion sub menu

remove duplicate buttons

This was the main reason for the PR. The preceding commits basically
set up the tab and render it, but this commit shows how much code gets
to be deleted and how much smoother and the promotions tab becomes :D

fixes #5517
include option values when loading option values from option types
fixes #5519
stack level too deep in rails 4.1.6
filter out shipment json data to avoid stack level too deep error in rails 4.1.6
add :state and :store_location_id to shipments js array

fixes #5504
be more verbose with the missing migrations
Refactor the duplicate request prevention code ( order.with_lock )
- break the lock code out into a seperate callback
- ensure it only operates on an update
- add specs

Refactor & Bugfix
- Correcly name the callback that prevents duplicate requests
- Add a spec to test that the callback is being called

Fixes #5523
clean up stock location form design

refactor field class of divs to parent div

add data-hooks for stock locations

Fixes #5525
Adds editorConfig.

Fixes #5491
Fallback to variant.id if sku is not provided.

Fixes #5524
Fixes #5526
Use variant_id to avoid loading variant.
Frontend - Fix RSpec 3 Deprecations.
Frontend - Fix rspec 3 deprecations.