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