Generate an API key for all users

This is so that we can authenticate to the API using a token always.

Conflicts:
	core/lib/spree/core/controller_helpers/auth.rb
Introduce Spree.uri and Spree.ajax helpers

Spree.uri is just a proxy to Spree.url. I kept typing uri when I meant url, and thought people might want to do both.

Spree.ajax takes some arguments and processes the URL through Spree.url before passing it to $.ajax. This is useful for people who want to make authenticated API requests to Spree.

Conflicts:
	core/app/assets/javascripts/spree.js.coffee

Fixes #2901
Modify CreditCard#brand to use spree_cc_type, allowing development credit cards to be used

Fixes #2923
fixed error with dropdown when switching between a country with states and another country with states

Fixes #2912
Don't attempt to generate user's API key if instance doesn't respond to spree_api_key
Check if order has payment step before checking for @order.payment?

Fixes #2910

Conflicts:
	frontend/app/controllers/spree/checkout_controller.rb