Remove shared_contexts from core spec_helper

Fixes #2919
Check for existance of payment? method on Order instances before calling it

Fixes #2910
Generate an API key for all users

This is so that we can authenticate to the API using a token always.
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.

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

Fixes #2923
Add migration to remove spree_products count_on_hand

Fixes #2895
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
point to github's https endpoint to avoid authentication errors.

Fixes #2925
Rename generate_api_key method to ensure_api_key so it doesn't conflict with Admin::UsersController
[frontend] Add spree_api_key stubs to controller specs where appropriate
[backend] Order stock_items by id in stock_locations_spec to fix MySQL+PostgreSQL tests
Ensure mail can actually be delivered in mail_methods_controller_spec