Move base shipping method into methods module
Use item-based shipping methods in US site
Remove find_by_code method from repo

This was no longer being used as the checkout code had changed to load
all viable methods and then iterate over to find the appropriate one.
Re-order params to shipping repository
Unit tests now pass for new method API
Adjust price object to allow tax to be set later
Unit tests for discounted shipping methods now pass
Checkout calculator unit tests pass
Move tests into integration test folder

As they are integration tests, not unit tests.
Adjust order creator to work with new shipping charges

We now need to pass in the shipping charge explicitly as well as the
method. The way that the shipping discounts are persisted is also
adjusted.
Adjust checkout to pass shipping charge

This fixes the remainder of the tests - yay!
Adjust model-based shipping methods to use the new API
OrderCreator now requires shipping method/charge to be passed

They no longer default to free.
Adjust API for checkout calculator

It now takes the shipping charge rather than the method. This makes
sense as the shipping charge has normally been calculated before we need
the order total so there is no point in calculating it twice.
Adjust basket page to show shipping discounts correctly
Use a templatetag to inject the shipping charge/discount

This is needed now that shipping methods don't carry the basket around
with them.
Add more robust shipping pre-condition checking to checkout

This change checks the shipping address/method info in the session still
corresponds to valid data. This handles race conditions where the logic
for addresses and methods is changed *while* someone is halfway through
the checkout.
Adjust signature of get_order_totals

This allows taxes to be added to the shipping charge and passed around.
Before this, tax info would be lost when regenerating order totals.
Rework US site's shipping methods to fit new system
Remove comments about thread-safety