Denormalize asset urls on models that use the asset field

* Adds a field for each asset field that is being used on a model.
As well as accessors that allow you to generate the url without querying the relation

* When a model changes it's asset selection the cache model is updated.

* When a asset instance file is changed if the filename has not changed only the version is incremented. If the filename (extension) changes queries to update all cached asset names as well.

* Tracks cache busting versions based on file or version changes on the assets model and in django cache.
Change all cached urls on versioned models
Start adding crops to assets.

* Urls are returned by the file accessor named for the crop. EI: obj.file.admin_url
* Crops are global and field based. Can be specified as a dictionary or a CropConfig object.
* Copper is an configurable object that handle the known crops and their creation.
* Asset model is configurable
* Asset types are configurable
* Signals are sent on file changes
Handle ValueError on import versioning manager
adding new test cases
documentation typos
Actually crop images
Merge branch 'feature/assets-refactor' of github.com:ff0000/scarlet into feature/assets-refactor
Allow cropping to be async
Add title field
Allow celery instance to be configurable.
Create a to_dict alias for CropSpec
test cases for shared subbundles and custom filter forms
adding test cases for pagination and listview formsets
Add the start of the basic cropping views in the cms.
Use name instead of path for deleting
fixing pagination test
pass in PK for non-celery mode
Allow old celery method to be used.
Merge branch 'develop' into feature/assets-refactor