Add nginx reverse proxy to apache in Vagrant VM

Accessible at port 9001.
Add gunicorn to Vagrant VM
Automatically start dev server in Vagrant VM
Docs: Explain changes to Vagrant VM
Filter by date range in Dasboard/Reporting, if provided
Filter different reports properly
Add reordering products inside ranges
Fix PEP8
Clean range ordering

- Remove forgotten print statement
- Rename `RangeOrdering` to more generic `RangeProduct` (later we can
  add another fields that are not ordering specific)
- Use `display_order` rather than priority (we set the order using
  jQuery sortable, not bump priority of couple products)
Fix backwards incompatible changes
Fix custom_range bugs with ugettext_lazy in custom range object name,
and unique fields error when creating existing custom ranges.
Fix for delegate of num_products to a proxy class as documented.
Fix issue with updating basket cookie in the middleware

Handle the case correctly where the basket cookie needs to be deleted
and updated in the same request. This can happen when unfreezing the 
basket. Django's response.delete_cookie doesn't remove the cookie from
request.COOKIES so we need to manually check this.
Ensure product class is available in template

Without this change, it's not available when creating a new product.
Prevent attribute validation for parent products

This is a messy situation caused by Oscar's product update view trying
to handle too many different scenarios.  This fix is quite hacky and not
entirely watertight - a better fix will arrive as part of #693 when the
catalogue dashboard gets rewritten to have separate views and forms for
group and standalong products.

The core problem comes from trying to validate required attributes.
When you are creating a parent product that belongs to a product class
with required attributes, you don't want to enforce that the attributes
are set (eg the parent doesn't have a size).  Before this change, the
dashboard would not allow a parent product to be saved if it didn't have
the product class attributes set.

Hence we need to change the validation rules when the form is submitted,
but it actually impossible to tell exactly if the submitted data is
for a new group product or a standalone product with no stockrecord.  To
address this, a new is_group field has been added to the form to
allow the validation rules to be altered when entering a new group
product.  Also, the product's save method allows a new kwarg that
disables attribute validation - this is required when saving a parent
product.
Adjust product update template

- Ensure variant overview shows attributes
- Use form field partial where appropriate
Updates setup.py to allow django 1.6.x
Incompatability with Django 1.6, commit_on_success and sqlite3

Changes to the transaction handling in Django 1.6 resulted in
the ``commit_on_success`` decorating failing with SQLite3.

The `atomic` decorating is used instead when available.
Extend price object to specify price to use for offers

This removes the need for the "applies_to_tax_exclusive_prices" field on
the offer model.  Now the strategy can specify which price to use for
offers.

This change also introduces a sample UK strategy which specifies that
offers apply to tax-inclusive prices.
Remove applies_to_tax_exclusive_prices field

It's no longer necessary now that the price object can specify which
price to use for offers.