Wishlists

See discussion: https://groups.google.com/forum/?fromgroups=#!topic/django-oscar/SGjelbMQX6U

## Requirements

* Only signed in users can have wishlists
* Users can have multiple wishlists; each wishlist can have a name
* Users will be able to browse and edit their wishlists (with a link on their account page)

## Non-requirements (future enhancements)
We'll do these later

* We don't need to track when products are purchased from a wishlist (and remove it)
* No public wishlists (yet)
* Default shipping address for wishlists
* Priorities for wishlist items

## Structure

* A wishlist has a name, an owner and can be public, private or shared (only accessible via a obfuscated link)
* A wishlist allows quantities of products to be recorded

## Stories

On the product detail page, a user can:

* add a product to one of their wishlists from a product detail page

On the account page, a user can:

* See a link to "manage their wislists" or something similar

On the wishlist management pages, a user can:

* adjust the quantity of a product on a wishlist
* create a new named wishlist
* mark a wishlist as private meaning no-one else can see it
* mark a wishlist as shared and get a "sharing URL" for their wishlist which they can email to friends (or post on facebook etc)
* change the name and sharing settings of a wishlist
* remove a product from an existing wishlist
* move a product from their wishlist to their basket (and back again)
* move a product to another wishlist


Notes:

* We should use Amazon as a guide for how to do this well.
* We should check-out how our competitors do it too to make sure we're not missing a trick.