Add slug history to product. Fixes #5014
Finish replacing old refund system:

- Stop requiring negative adjustments in order to perform refunds
- Add new admin pages to manage refunds
- Remove Payment#credit! (and associated controller actions) and instead use refund objects that are linked to payments
- Update Payment#cancel so that it no longer falls back to a full refund
- Refactor some code in the Refund model

Fixes #5012
Avoid browser default font on backend icons

In the Spree backend UI, icons are used by adding classes to existing elements, without adding something like `<i class="icon-something"></i>`.
But font-awesome-rails sets the font-family to just `FontAwesome`, which results in the browser default font-family (usually, Times New Roman) being used for any text that appears next to an icon (on Firefox, at least).
Screenshot: http://adobe.ly/1mb9oOH

Fixes #4885
Capture on dispatch. Fixes #4727
Add changelog entry for capture on dispatch.
Validate uniqueness of variants sku. Fixes #5015
Initial work on how to extend spree to support extensions that customize line items.

Adds the build_options hook for extensions to process their own cart params.

Fixes #4546
Address feedback and fix specs. refs #4546
Fix analytics check to run only when there is an order. Fixes #4929
Fix duplicate sku in samples.
Order history should be reverse chronological. Fixes #5024
Fix spec for ruby 2.0

With Ruby 2.0.0 p451 this was giving:

    expected: 95.17
         got: #<BigDecimal: 95.17000000000001>