Dynamic Models

This adds support for dynamic models in GeoNode, it is disabled by default and added as a contrib app.

When enabled, there will be a new field in the layer model that works like this:

```
In [1]: from geonode.layers.models import Layer

In [2]: layer = Layer.objects.all()[4]

In [3]: layer.data_objects.all()
Out[3]: [<boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, <boxes_with_dates_bc: boxes_with_dates_bc object>, '...(remaining elements truncated)...']
```

And the new models will also be accessible in the Django admin after a server reload:
![schermata 2014-05-15 alle 17 11 06](https://cloud.githubusercontent.com/assets/54999/2986290/2e22ca44-dc43-11e3-98af-59ff610e570c.png)

To enable it, psycopg2 needs to be installed and there should be a 'datastore' pointing to a postgis instance in local_settings.py.