Rename udf_scalar_values to udfs

Previously we were just storing scalar udfs. Now we access all UDFs via
this single interface.
Add user defined collection backend

User defined collections are similar to scalar udfs in that they
both are defined as UserDefinedFieldDefinitions. However, as the name
suggests, a single UDFD can represent a set of named tuples.

For example:

```
UserDefinedFieldDefinition.objects.create(
            instance=self.instance,
            model_type='Plot',
            datatype=json.dumps([
                {'type': 'string',
                 'name': 'action'},
                {'type': 'int',
                 'name': 'height'}]),
            iscollection=True,
            name='Stewardship'
```

Then we can play around with it using the `udf` pseudo field:

```
p = Plot.objects.get(pk=some_pk)
p.udf['Stewardship'].append({'action': 'rake', 'height': 12})
p.udf['Stewardship'].append({'action': 'climb', 'height': 12})
p.save_with_user(some_user_with_permissions)

p2 = Plot.objects.get(pk=some_pk)

assert p2.udf['Stewardship'][0]['action'] == 'rake'
assert p2.udf['Stewardship'][1]['action'] == 'climb'
```

There are specialized authorizable semantics for collection
fields. Using the above as an example, the udf can be edited if the user
has some sort of editing permission for model 'Plot' and field
'udf:Stewardship'.

The biggest current issue is the awkward couping between the audit
system, the authorizable system and the UDF system (as witnessed by the
function-level imports in audit.py from udf.py). That being said, this
is the last planned change to those systems so we can refactor freely
from here on out.
Merge pull request #268 from ahinz/topic/collection-udfs

Add user defined collection backend
Merge markers left in
I guess that previous merge wasn't as clean as I thought
Add view at the root to facilitate testing

Also adds in a couple of ids on the login/logout links to make the
selenium tests work
Add in selenium test driver

Run uitests with:

```
python manage.py uitest
```

This commit just gets everything set up and moving. Future work includes
support for filtering tests on the command line (similar to manage.py
test).

A 'dev-requirements.txt' file that include requirements for running
selenium has also been added. To run the tests you'll need firefox and
some sort of X server.
Merge pull request #273 from ahinz/topic/selenium

Add in selenium test driver