Import models module instead of relying on import_models()

After feedback from @aaugustin, the fix for the Django 1.7 model loading
regression (done in 51a0859) can still interfere with the process. The
clean approach is to emulate importing the models file.

The code was provided from @aaugustin; I merely tested it still fixes
the issue and fiddled with the comments to appease the gods of PEP8.
Add get_facet_munger method to SearchHandler

Without this you can't modify `FacetMunger`'s constructor.
Conflicts:
	oscar/apps/search/search_handlers.py

Closes #1536.

@maikhoepfel added PEP8 fixes for the search app.
Test for data-loading-text directly

This reduces API complexity at the cost of removing the possibility to get
the pure bootstrap behaviour that doesn't check for invalid fields. I
cannot imagine a use case where the pure bootstrap behaviour is better, so
I took the opportunity to reduce complexity.
Remove conditions and benefits

Remove the conditions Coverage, Value and Count and the benefits
AbsoluteDiscount, FixedPrice and Multibuy. Add NoneCondition for offers that
apply to all baskets.

Reason is that the correct semantics are unclear and we don't need them now
and I don't want to spend time fixing the tests for them. I'll refactor
offers without them.

Example for unclear semantics:
https://groups.google.com/forum/#!topic/django-oscar/vceEpy889O4
https://groups.google.com/forum/#!topic/django-oscar/XMuhEBLbv-U
Refactor offers

To track benefit application on a separate data structure instead of the
basket line. This uncouples the database-bound basket from the offer
calculations.
Support multiple benefits per line
WIP Refactor checkout

This decouples the checkout flow from the individual checkout views.

There are now three checkout view mixins:

  1. checkout.session.CheckoutSessionMixin puts relevant checkout info in
     the template context. Pre and skip condition code has been removed.
  2. checkout.mixins.OrderPlacementMixin as before has the meat of making
     an order from a basket and handling payment. After placing the order
     control is returned to CheckoutFlow.
  3. checkout.flow.CheckoutFlow is new and manages the checkout flow.

CheckoutFlow provides checkout(), which uses the checkout session data to
determine the next step in the checkout, and redirects there. If all
steps are complete, it lets OrderPlacementMixin handle the basket to make
an order.

If a redirect payment method is used, the payment result view can call
checkout_failed() or checkout_successful() to return flow control to
CheckoutFlow. checkout_failed() will show the preview page again, and
checkout_successful() will redirect to the thank-you page. This allows
customizing this part of the flow independently of the payment
implementation.

The individual checkout views were stripped of pre and skip conditions and
other checkout flow code. The all use the CheckoutFlow mixin instead of the
CheckoutSessionMixin or the OrderPlacementMixin.
Move queryset_{description,icon} to Table class
Derive tables from correct base class to enable customizations
Introduce a customizable caption with the number of rows in it
Show number of categories in table caption
Update less to 1.7.3 and enable source maps

Don't use requirements-less.txt now, instead just use npm to install less.
Don't overwrite bootstrap error, success and information alert colors

http://getbootstrap.com/2.3.2/components.html#alerts

git blame doesn't reveal any useful information as to why this was added in
the first place.
Use bootstrap button color instead of the same color for all button types
Leave non-wysiwyg text areas alone

as was the intention according to the comment above the CSS rule.

Without this regulating the size of the textarea with
attrs={'rows': x, 'cols': y} was not effective.
Bigger font for inputs
Remove unused CSS

There's no category-selected in the Dashboard as far as I can find
Actually use the variables from variables.less
Set a bigger font size and more readable font

The previously used font was too thin.
Visually connect tabs with tab content through a well