Fixed FlexiRate Calculator when max_items is set

[Fixes #3160]
Don't save invalid addresses.

Bypass default scope in Spree::Order#associate_user!

This is more consistent with the Rails 4 implementation of update_columns: https://github.com/rails/rails/blob/8ac8eb66c19d352dde548fc5c9a632ffbb586abe/activerecord/lib/active_record/persistence.rb#L276. Also, it won't break if an app developer adds a default scope to Spree::Order.
Use rspec render_template for layout specification [Fixes #2974]

Improve product spec, too many repeated spec and create(:product) calls
compare strings to strings when transitioning to shipment states

Fixes #3105