Add Spree::Admin::RootController for redirecting purposes.

Currently, is really difficult to redirect to a different tab when the
user has logged in if said users cannot at least :admin, :index
`Spree::Order`s.

This commit adds a controller that handles `/admin` route so anyone can
easily redirect to another page (or implement any other logic).
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.
Display states link if a country exists without a default country set. Fixes #5443
include children in spree taxon load

fixes #5528
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