In memory sort of variant.options_text

Assume that the option_values -> option_types have been eager loaded via joins/includes and simply sort in memory. Removing the explicit query removes N queries for products/show in the api where N = number of variants that belong to the product. This should allow us to fully take advantage of the API optimization made here:

https://github.com/spree/spree/commit/30597b2aa7a1f47b5e636750baf7c100f0cc42b2

Fixes #4294
Move create_tax_charge callback to after transitioning from address, rather than before delivery

Fixes #4280
Check for delivery step before attempting to use delivery? helper in Order#has_available_payment

If the state machine is redefined to not have this step, then the helper will not be there and the state machine gem will error out

     Failure/Error: order.next!
     IndexError:
       :delivery is an invalid name
Stub has_available_payment method to stop has_step? callbacks
Payment state should be set to credit_owed if payment has been taken but there are no line items

Fixes #4281
Eager load all things for api/product/:id

Need to call `reload` on @product at update action so that it loads new
variants and show them properly on the template

Fixes #4287
Fixes #4285
bump jquery-rails and jquery-ui-rails versions
can_stock? has been refactored into can_supply?

Fixes #4291
Use jquery-rails 3.1.0 in frontend