Add new signal for searches

It passes the query the user searched for.
Extend basket_addition signal to pass request instance
Add checkout signal for starting checkout

We send the user's email address too.
Don't error if product from search index is no longer in database
Remove "heritage" search functionality within catalogue app

We now have a proper search app for searching.  We don't need the simple
search within the catalogue app anymore.
Add IDs to log(in|out) links

For easier testing.
Extend user_registered signal to pass request instance
Raise custom signal when user logs in

There is a Django signal for this event but it doesn't include the
session key for the previous session (which I need for an Oscar CRM
extension).
Send request instance with user_registered signal