Add a JSONField that translates db strings to python via JSON

Just make a JSONField field:

```
class MyModel(models.Model):
   stuff = JSONField()

...

m = MyModel()
m.stuff['user'] = {'age': 4, 'name': 'Peggy'}
m.save()

```

JSONField does not currently support lookups.
Add config JSONField to instance

Also provides a way to create simple getters/setters. If we want to add
a new top-level setting simply run:

```
advanced_search_filters = _make_config_property(
   'advanced_search_fields')
```

Which will allow you to write and read that property directly from an
instance:

```
i = Instance.objects.get(pk=?)

i.advanced_search_fields = ['field 1', 'field 2']
i.save()
```
Add base for management app

This app will provide administrative tools for customizing user defined
fields and permissions.
Provide support for injecting urls via local_settings.py

This will be useful when we want to merge in private apps.
Merge pull request #206 from ahinz/topic/instance-config

Topic/instance config
Add utility functions for setting and getting visited instances
Use last instance visited for non-instance "Explore Trees" link
Made utility function names consistent
Ignore the cloud management app
Don't get the boundaries and species lists for the map template.

Since typeahead.js prefetches these using AJAX, the template no longer needs them.
Have User.save pass it's *args and **kwargs to save_with_user

Fixes callling client.login() from a test method.
Add extension point for installed apps
Merge pull request #207 from maurizi/topic/storeInstances

Topic/store instances
Merge pull request #211 from ahinz/topic/create-management-app

Topic/create management app
Add get_pending_fields method to UserTrackable

In order to avoid reflection in the Auditable class in the form of hasattr(self, 'get_pending_fields'). This field is now implemented in the base class as a no op.

A follow up that further decouples Auditable from Authorizable is in order.
Make plot unicode method fail gracefully

plot unicode methods will now show incomplete information instead of
raising an exception when referenced fields are null.
Expand audit unicode method
Stop tracking instance and change type to a set
Factor out model_hasattr
Replace call to full_clean() with clean()

full_clean() does too much built-in django validation to be
compatible with the changes made in the audit system.