Use slower but robust ActiveRecord for migration

When I ran this migration on my 2-1-stable store, I got the following exception:

    StandardError: An error has occurred, all later migrations canceled:

    Mysql2::Error: Column 'shipment_total' cannot be null: UPDATE spree_orders
                 SET shipment_total = (SELECT SUM(spree_shipments.cost) AS sum_id
                                       FROM spree_shipments
                                       WHERE spree_shipments.order_id = spree_orders.id)
                 WHERE spree_orders.completed_at IS NOT NULL AND spree_orders.shipment_total = 0/Users/username/appname/db/migrate/20140609012476_set_shipment_total_for_users_upgrading.spree.rb:7:in `up'
    ActiveRecord::StatementInvalid: Mysql2::Error: Column 'shipment_total' cannot be null: UPDATE spree_orders
                 SET shipment_total = (SELECT SUM(spree_shipments.cost) AS sum_id
                                       FROM spree_shipments
                                       WHERE spree_shipments.order_id = spree_orders.id)
                 WHERE spree_orders.completed_at IS NOT NULL AND spree_orders.shipment_total = 0

Rephrasing the raw SQL into ActiveRecord, the migration ran slower but didn’t crash.

(I was intending to add `if shipments && shipments.sum(:cost)` to line 7 but surprisingly didn’t need to.)

Fixes #4823
Raise an exchange error if we can't ship all requested items

This will prevent an exchange from failing silently when, for example, a stale return authorization admin page gets submitted requesting an expedited exchange for an item for which there is no longer any stock available.

Fixes #5472
fix spelling of retrieve everywhere
fixes #5473
update readme for rails 4 asset precompilation
fixes #5474
add carmen as a dependency
create all the countries via carmen
use carmen to create all the states
implement active record base transaction to make it faster
have states required return yes if country has subregions
fixes #5477
fixes #4435
Default to use biling address on admin order form.
Newer rspec syntax.
Use valid zip codes to fix specs.
No need for partial. Fixes #5475
move tab arrays into backend configuration model via constants

This one is a really cool one because that means that if you’re using a
spree extension and you want to make a tab active, you don’t have to
overwrite the _tabs file. All you have to do is add to the constants
:D. This is awesome.

fixes #5478
create a has and belongs to many association for spree taxons and prototypes

add taxons for admin prototypes

add spec to prototypes feature for deleting

remove old `.find_all_by_prototype` code

This code seems old. It is trying to do a table join on a non-existent
relationship, or rather, a table that is non-namespaces with `spree_`.
Also, I couldn’t get it working while writing tests for it. Tested out
the method on a current project and returned PG errors. Tests returned
SQLite errors.

Fixes #5476
Remove shoulda matchers again.
remove top and bottom pixels from admin nav
fixes #4924
create proposed shipments if is no shippment data
also make sure to set the cost provided after order update

Conflicts:
	core/lib/spree/core/importer/order.rb
	core/spec/lib/spree/core/importer/order_spec.rb
Looking up stock location by the admin name as well

fixes #5484
Add spec for looking up stock location by admin name.