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.
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.