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.
Rework layout templates to remove duplication

The 2- and 3- column layout templates now extend layout.html so that
duplication is avoided.  They now just override the content_wrapper
block that wraps the layout of the page.
AJAX response now using JSON with HTML field

This allows flash messages to be passed separately.
Convert JS to use jQuery's 'on' method rather than 'click'

To replicate the 'live' behaviour and avoid rebinding events when the
DOM is updated.
Relabel the basket form slightly
Use temporary storage for flash messages

This helps with views that can return a AJAX response.  We store the
messages temporarily then apply them to the request, or serialise to
JSON at the end.