Ignore /local

Provide a place to keep unversioned dev assets
Support loading from fixtures
Whitespace
Support loading private js
Merge pull request #232 from ahinz/topic/grunt

Topic/grunt
Refactor map page to support different interaction modes

The main "map" page has several modes -- browse trees, add a tree, and edit tree details. Each mode has a div in the sidebar to show its UI and a JS module to handle UI events. The "modesForMapPage" module initializes the mode modules and orchestrates switching between modes.

Note that different modes will interpret map clicks differently. We pass the map's "clickedLatLonStream" to each mode, but filter it so the events will be ignored unless the mode is active.
Reference subtemplates correctly
Rename _lkp_model to _lookup_model

to make things more explicit
Make udfs use 'udf:' prefix explicitly

UDF names must now be prefixed explicitly in most places where they are used. An exception being when in UDF internals, like UDFModel().

This decision was mostly stylistic, but was prompted by a bug in the newly created audit._deserialize_value method. When getting the django field for an audit value, it was retrieving the HStoreField for the UDFModel, which would try to deserialize the entire hstore (k,v hash). By being explicit about udf fields, it's easier to control the field that they provide to the deserialization method.
Phase out AuditUI and deserialization function
Phase out _write_perm_comparison_sets

This function turned out not to behelpful, and was hard to read.
UserTrackable no longer knows about udfs

UserTrackable should not have to know about udfs, but was coupled to
them by having 'udf_scalar_values' in the _do_not_track set.

Restructure __init__ and populate_previous_state so that UDFModel can
add 'udf_scalar_values' to the _do_not_track set *before* previous
state is populated, because populate_previous_state reads this set.
Fix python lint
Merge pull request #231 from steventlamb/topic/deserialize_audit_values

Topic/deserialize audit values
Expose settings object to templates

This is used to give access to the bing api key for non-instance based
apps where settings.js doesn't get loaded.
Whitespace cleanup on css
Add in openlayers css
Remove instance-related controls from base template
Instance names must be unique
Add function to approve bulk audits