Set form instance attributes needed for cleaning in appropriate order

This changes introduced in this commit are similar to those in e1c7d8a
which allowed instances being created/updated from rest_framework
serializers to be cleaned properly. See the message on that commit for
more information.

The biggest difference is that, in the case of forms which create a new
object, we need to explicitly create a new instance of the model with
the `project` attribute set. This is done by extending the
`get_form_kwargs` method of django.views.generic.ModelFormMixin. The
creation of this new instance is not saved to the database, so we are
passing an uncommitted an instance throughout the form. This required
changing any code which only checked whether `instance=None` to detect
the saving a new object rather than an updated object. Instead, that
kind of logic should be replaced with checking for `instance.pk`.

These steps are also set for setting the `topic_node` attribute of newly
created topics, since there is a unique constraint on topic nodes and
projects.
Fix base API view
Remove annoying <br/> tags from documents on clean
Require django-webtest; update admin tests
Fix a large permissions bug in all admin views

When adding an item, the right permission wasn't being checked,
resulting in anyone except a superuser being denied access.
Update project permissions when canonical group created