Update documentation and names
Add quick access to VM shells through fabric
Add utility function to reserve unique audit ids
Merge pull request #143 from steventlamb/topic/audit_updates

Topic/audit updates
Move instance model to its own file

User defined fields need to reference instance, as well as the objects
in models. However, models needs to also reference UDFs. This prevents
an annoying circular reference
Add in scalar user defined fields

Scalar user defined fields can be added to any model by using a parent
class of: UDFModel (from treemap.udf).

UDFModel provides the `udf_scalar_values` field. This field allows udfs
defined using a `UserDefinedFieldDefinition` to be accessed using
standard python square-bracket syntax.

For example, if we have a `UserDefinedFieldDefinition` defined like:

```
datatype = [{'type': 'int'}]
name = 'Plot Age'
```

We can update the field using:

```
p = Plot.objects.get(pk=4)
old_age = p.udf_scalar_values['Plot Age']

p.udf_scalar_values['Plot Age'] = 4
p.save_with_user(some_user)
```

Scalar UDFs interop directly with the audit and authorizable system. In
the above example the user (`some_user`) must have `WRITE_DIRECTLY` or
`WRITE_WITH_AUDIT` privileges on 'Plot.Plot Age'.

Since this uses postgres's hstore feature we need to update our build
tools to install it:

```
bash> sudo apt-get install postgresql-contrib
psql> CREATE EXTENSION hstore;
```