Strip punctuation when tokenizing species names

Some names are enclosed in quotes, which prevent easily searching.
Move Bacon utility functions into separate module
Clear the hidden input when delete/backspace is pressed.

Fixes #122
Change name of typeahead wrapper module for consistency
Some simple refactoring from code review suggestions
Merge pull request #166 from maurizi/fix/brokenPR127

Fix Broken PR #127
Add role based fields to admin
Add a template tag to handle field visibility

Also wires in plot and tree info
Support scoped udfs on plot detail page
Merge pull request #165 from ahinz/topic/plot-detail-page

Topic/plot detail page
Add InstanceUser model; move 'role' and 'repuation' from User model

3 migrations:
* Schema: create InstanceUser
* Data: create an InstanceUser for each existing role of each existing user
* Schema: remove 'roles' and 'reputation' from User
Update Role and Repuation code to access InstanceUser

A User object no longer has "roles" or "reputation" -- for that you need an InstanceUser.
My strategy is to mostly avoid accessing InstanceUser directly, using instead User methods
get_role(), get_reputation(), and get_instance_permissions(). (Internally these access
get_instance_user(), which is available when necessary.)

So in this commit we update all the code which interacts with role and reputation.

Note that like User.save(), InstanceUser.save() saves with the system_user.

One bug fix:
* In create_plot(), don't create plot if tree height is invalid
Update OTM1 migration logic to use InstanceUser

* Create an InstanceUser for each User, with the instance's default_role
* more_permissions() applies role to InstanceUser, not User