Change Spree::Payment processing methods to use strict creation

* In a few cases during testing the processing methods were
  silently returning objects that were not valid, causing strange
  behaviour in places further removed from processing. This change
  makes it so that if there are issues with the object creation they
  are immediately obvious.

  This seemed like a safe change because I believe under normal
  circumstances these methods should never fail.
Add number validation to Spree::Payment#amount
Add Spree::Payment#amount=

* This method will coerce the amount (usually from the web form)
  into a decimal and assign it to the payment amount. It will also
  continue to work with numeric values passed in directly.
Add display amount for payment api show view

* This will allow JS to display the payment amount without
  duplicating the money formatting logic on the client side.
Add Spree::Api::PaymentsController#update

* This action will allow admin users to be able to update a pending
  payment.
Add admin pending payment amount editing

* This adds a coffeescript file with classes to manage the payment
  object, as well as two classes to manage the show and edit view
  states for a payment.

  The show view is the starting state and is added to each pending
  payment in the table. It will add the edit icon as well as make
  the amount clickable; clicking on either will change to the edit
  view.

  The edit view will hide the capture and pending icons, as well as
  change the edit icon to save. It will also change the amount to a
  text field, which can be edited. Moving focus from the text field
  or clicking on the save icon will save the payment using an ajax
  request. The edit view may be cancelled and reverted back to the
  show view by clicking on the cancel button.

  If the ajax request is successful, then the show view will return.
  If there is an error, a flash message will display at the top of
  the page and fade away after 5 seconds.

Fixes #3765
Add payment display_amount attribute to new and index templates
Add Spree::Money#as_json

* This allows the explicit node blocks to be removed from the
  payments api index and show views.
[frontend] Use response.status instead of response.code in products_controller_spec

This is because a) it returns a numeric code and b) is what we're using for the other tests
Fix shipping methods sample data

We were association a not shipping calculator to the shipping method.
Users trying to edit the samples shipping method would get a Shipping
Method not found because it was associated with a calculator not
available.

Fixes #3776
Fix shipping category set up in sample data

We should assign the same shipping category to shipping method and
products to avoid "cant calculate shipping rates" issues during checkout
on a fresh spree install

Fixes #3771
Normal users should not be able to read stock item, stock location or stock movement information

Conflicts:
	core/app/models/spree/ability.rb
Ensure that stock items cannot be seen/modified by normal API users
Ensure that StockMovement actions are restricted to admins only
Ensure that stock locations cannot be seen/modified by normal API users

Conflicts:
	api/app/controllers/spree/api/stock_locations_controller.rb
[api] Remove conflicts from Payments controller spec
Fix Rails 3 incompatibility errors with Api::PaymentsController + its test
[api] Correct Stock*Controller permissions for this branch in particular
Work with a persisted order and payment within payment_spec
Within this particular test, Payment receives create, not create