Offers require a start date now

I've been convinced by Tangent's UX team that this is sensible.  The
main reason being that it makes it possible to determine when an offer
started (not necessarily the same as date_created).

Fixes #412
Add profiling middleware

These can be used to dump profile stats to the console during
development.
Make logout redirect non-permanent
Convert two redirects to use temporary codes

Don't think these two should be permanent.
Fixes test after changes in latest commit
Refer explicitly to virtualenvwrapper in docs

To avoid confusion.

Fixes #429
Patch i18n holes in account template

Fixes #425
Fix preselect_related bug

Seems to only occur on sandbox site.  Needs more investigation.
Updating sandbox also flushes sorl cache

This was causing problems with products with no uploaded images.
Flushing the cache fixed it so I'm adding it the build script to avoid
future issues.
Add file logging for sorl

This is to capture any errors that occur on sandbox/demo sites.
Improve basket admin

Make several fields readonly as it doesn't make sense to edit them
directly.  This makes the admin a little more 'dashboard-like'.
Rename 'set_as_submitted' to 'submit' in basket

Bringing it inline with the other status-changing methods.
Correct handling of unavailability reason

Code was incorrectly assuming it to be iterable.

Fixes #414
Correct recipe on customising templates

Was using wrong setting.
Document how google analytics could be replaced

Simplest way is to override templates rather.

Related to #422
Add screenshots to README
Correct sandbox URL in README
Basket formset can be submitted via AJAX

Main page content of basket page has been extracted into a partial so it
can be loaded separately.  The basket page now uses jQuery's load
function to update the #content_inner div when the formset is submitted.
Split mini-basket into separate partial

This is clearer in the layout templates as the basket shouldn't really
have been in the 'brand' partial, as it has nothing to do with brand.
Remove mini-basket from basket detail page

So we don't have two baskets to keep in sync.  This becomes a problem
when you start using AJAX to update on of the baskets.