Call signal receivers from models.py (not __init__.py)

This reverts fa1f8403 which moved them from models.py to __init__.py.
As reported by @mvantellingen, importing receivers from __init__.py
breaks the way models are normally overridden as it causes the core
models.py to get imported before the custom one.

We need to move back to the old system and will need to advise that the
debug toolbar needs to be set-up explicitly to avoid circular import
issues with models.

Fixes #1159
Original issue #1125
Handle group products when extracting price for search backend

Previously, the `prepare_price` method only considered standalong
products.  This changes adds handling for groups.

Fixes #1157
Use Oscar's AbstractUser model for the test suite

Previously, the test suite ran with a custom user model for Django >=
1.5, but it didn't subclass Oscar's AbstractUser.  This commit adjusts
the custom user model to subclass Oscar's so we can test functionality
within the custom user class.

This does require a change to the way tests authenticate as we don't
actually use the username field.
Adjust import of `StockAlert` to avoid circular reference

We now use the related manager to access the model class rather than
importing at runtime which causes a circular reference.

Fixes issues reported in comments of #1127
Merge branch 'releases/0.6' of https://github.com/tangentlabs/django-oscar into projects/butik-shop