cleanup like_any with some arel

Fixes #3701
Dont set preference on assets:precompile

Avoid opening a db connection when running assets:precompile to help
users to deploy their apps to heroku

Fixes #3703
Fix error message to include all errors in Spree::Order instance

* When Spree::Order#next fails because an association is invalid, a
  red blank error message is displayed in the cart. This hides
  legitimate errors, like a bug I found in spreee_active_shipping.

Fixes #3714
Fix order_id assignment in OrderInventory

We missed the order param when creating inventory units through
shipments in OrderInventory. That will cause exception later on because
a InventoryUnit expect to always be associated with an order (which is
something I believe we should probably remove completely in the next
major release)

Conflicts:
	core/app/models/spree/order_inventory.rb

Fixes #3713
Remove blank username line in dummy database.yml mysql config

For some reason activerecord-jdbcmysql-adapter hates blank usernames
and will not connect despite the fact that mysql2 works fine. Removing
these lines doesn't break mysql2 so I see no reason to keep them there.
I'm trying to test my gems on jruby in anticipation of spree working on
jruby so this fix would be helpful. Here's sample Travis output showing
what goes wrong:
https://travis-ci.org/swrobel/spree_zero_stock_products/jobs/11136157

Fixes #3693
Adding missing singular/plural names for models in core

[Fixes #3674]
Cache result of insufficient_stock_lines so that it is not called for every single line item rendered on the cart page
Delete all inventory units (rather than destroy)

When a shipment was previously destroyed, it would call destroy on each InventoryUnit object. This took a long time if there were a lot of inventory units. There's no need to call destroy, as there's no callbacks in this model for destroy. All shipment needs to do is *DELETE ALL* its inventory units, and so this is what's going to happen now.
Only call update_order + update_inventory callbacks for LineItem if is destroyed or changed
Delete all shipping adjustments immediately prior to deleting all shipments in Order#create_proposed_shipments

What would happen before is that each shipment would find its adjustments and call destroy on them. We don't necessarily care about all that happening because once the new adjustments have been created then the order will be updated correctly.
When a shipment is destroyed, delete all shipping rates in one query, rather than 1 query per shipping rate
Check if a stock location has any of a variant in stock by using an exists? query, which is faster than Ruby
Handle 404 responses from alerts.spreecommerce.com

Fixes #3716
Fixing backend sub-menu navigation selection by making match_path for tabs work. Tests included now.

Fixes #3683
[backend] Remove conflict from CHANGELOG
no longer autocomplete values in product properties fields

Fixes #3695
remove horizontalNav js from admin this extension was causing warnings on the js consoles since it was using outdated jquery functions, and hasn't been updated this js plugin was here to allow ie7 < users to see the backend navigation using full-width

Fixes #3720
add spec to proof issue with variant update without product permalink.
fix the ActiveRecord::ReadOnlyRecord exception when the @product is null when update the variant

Fixes #3718
Fix syntax error.