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.
Start core rspec 3 updates.
Fix core specs.
Used transpec to update backend specs to rspec 3.
Convert specs to RSpec 3.1.7 syntax with Transpec

This conversion is done by Transpec 2.3.7 with the following command:
    transpec -s

* 667 conversions
    from: obj.should
      to: expect(obj).to

* 421 conversions
    from: == expected
      to: eq(expected)

* 34 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 31 conversions
    from: describe 'some controller' { }
      to: describe 'some controller', :type => :controller { }

* 17 conversions
    from: Klass.any_instance.stub(:message => value)
      to: allow_any_instance_of(Klass).to receive_messages(:message => value)

* 15 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 10 conversions
    from: lambda { }.should
      to: expect { }.to

* 10 conversions
    from: obj.stub(:message => value)
      to: allow(obj).to receive_messages(:message => value)

* 9 conversions
    from: lambda { }.should_not
      to: expect { }.not_to

* 8 conversions
    from: obj.stub_chain(:message1, :message2)
      to: allow(obj).to receive_message_chain(:message1, :message2)

* 7 conversions
    from: =~ /pattern/
      to: match(/pattern/)

* 7 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 6 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)

* 3 conversions
    from: > expected
      to: be > expected

* 3 conversions
    from: obj.should_not_receive(:message)
      to: expect(obj).not_to receive(:message)

* 1 conversion
    from: =~ [1, 2]
      to: match_array([1, 2])

* 1 conversion
    from: describe 'some model' { }
      to: describe 'some model', :type => :model { }

* 1 conversion
    from: describe 'some request' { }
      to: describe 'some request', :type => :request { }

For more details: https://github.com/yujinakayama/transpec#supported-conversions
Fix remaining deprecations in helpers.
Display states link if a country exists without a default country set. Fixes #5443
add counter cache from variants to stock items

fixes #5520
Add spec for updating version.
add table name for order/line_item association
fixes #5531
refactor code to follow DRY in zone model
fixes #5532
Update generated robots.txt
fixes #5533
Removes redundant closing li
fixes #5535
Make email field in admin orders#index link to the customer's account page
fixes #5539