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
Refactor audits and provide a helper for future fixing of #169
Add short descriptions to audits

Currently space is constrained on the plot detail page so we just show
the audit essentials. We may want to move this sort of logic to a
template at some point
Add method to get deleted tree ids on a given plot
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
Update search to work on all pages that extend base

In particular, pages that call init will get the dropdowns initialized
and any searching will redirect to the search page.

The map page overrides that javascript init functions to provide custom
mapping and searching.
Add recent edits to plot detail page
Merge pull request #170 from ahinz/topic/plot-audits

Topic/plot audits
get_instance_user() returns None rather than throwing an exception

Callers must do something sensible, like using the instance's default role if a role what they're after