Strip whitespace from start/end of search term

Remove whitespace from beginning and end of search term (UPC and Title)
in dashboard
Allow test cases to consider a custom Oscar user model

Most test cases only consider the default Django user model that
contains the username field. As soon as you extend Oscar's AbstractUser
model that doesn't contain a username field, tests that use
ClientTestCase or WebTestCase fail.
Use slug instead of id for product_class in URL

This gives more readable URLs.
Put all widget initialization code in one function.

That way in can be called easily for dynamically added forms.
Add widgets only to visible elements.

That way they're not added to hidden empty form templates. The form
template is cloned when using dynamic formsets. In my experience
the timepicker and select2 get mighty confused when they are cloned.
Therefore the idiom is to leave the hidden empty form without widgets and
attach them after they become visible.
Limit widget initialization to a provided scope.
Bump dashboard's Bootstrap version to 2.3.2

Also removed the unused bootstrap.js.

Notably, CSS/LESS files are separate for the dashboard and front-end of
Oscar, but both used the outdated bootstrap.min.js.

Fixes #1191
Merge pull request #1190 from mbertheau/support-dynamic-formsets

Support dynamic formsets
Remove custom JS for demo site

Pull request #1199 highlighted that there's a copy of ui.js used for the
demo site. At d98f3446356ef290529671621db843263c2dc5f7, when that copy
was last modified, only one line was different between the
sites/demo/static/demo/js/oscar/ui.js and
oscar/static/oscar/js/oscar/ui.js.

Similarly, there was a copy of dashboard.js which wasn't even used and
which was no different from the stock one.

As I've not spotted any regressions when browsing the demo site, I've
reverted to using the stock versions and removed the copies.

Fixes #1199
Use new error-block class for error messages

At the moment, error messages get the class help-block. However the same
help-block class is applied to help text. It makes it hard to style
errors and help messages differently.

Work done by @timjacobi in #998. I was skeptical of all the CSS changes
and hence re-did the CSS compilation. I also only pulled across the
class changes and ignored some of the other HTML changes as they've
since been applied on master.

Fixes #998

Conflicts:
	oscar/templates/oscar/basket/partials/basket_content.html
	oscar/templates/oscar/dashboard/catalogue/product_update.html
Merge pull request #775 from tangentlabs/feature/strip_whitespace_in_product_search

Product search in dashboard doesn't strip whitespaces
Prevent selecting non-shipping country as default address

In the address book form countries were not filtered by
is_shipping_country=True. And this is ok: for example the user has
a billing address not in a shipping country.

But one could set these addresses as default shipping address and they
appeared as valid shipping addresses. So users could make orders to
addresses in non-shipping countries.

@maikhoepfel squashed the commits, marked the error message as
translatable and simplified the template logic.

Reported by @itbabu.

Fixes #931
Add create child category action in categories dashboard

This prefills the create form with the correct parent.

Fixes #1089
Fixes #1063
Merge pull request #1123 from mbertheau/product-class-use-slug-in-URL

Use slug instead of id for product_class in URL
Update release notes for 0.7
Remove unused CSS class

Has been introduced in 30ac4fe5d8b4f5dd0e19905d684a07d09bd22200, but is
not used anywhere.
Set COMPRESS_ROOT for tests to avoid issue with Django 1.6.2

Django 1.6.2 must have altered the app initialisation process.
django-compressor trips when COMPRESS_ROOT isn't set, whereas it didn't
before.

Fixes #1214
Merge pull request #1120 from tangentlabs/fix/no_username_tests

Allow test cases to consider a custom Oscar user model
Fix ImageInput instead of re-binding image formset

@mbertheau raised a good point that rebinding the image formsets as
added in 0b373df hides any errors in the image formset.
https://github.com/tangentlabs/django-oscar/commit/0b373df5ab76d6fda691fafede0b3e126a91b155#commitcomment-5368878

This fix undoes that change and instead alters behaviour of the
ImageInput widget to not display images that were never persisted to
disk.
Use atomic instead of commit_on_success if available

commit_on_success is deprecated as of Django 1.6, and will be removed in
Django 1.8.