Add contributing document
Fix merge error
Make OTM1UserRelic inherit from abstract
Miscellaneous Improvements

Add better error message
Rename inappropriately named function
Rename vars with 'hash' -> 'dict'
Move helper functions to util module
Miscellaneous Improvements

- Rename 'dicts_to_saved_objects' -> 'save_objects'
- Rename dependency_ids -> relic_ids
  * They do more than process dependencies now)
- Give special meaning to pk=-1
- Always make (sure exists) a relic
- Order migrations by dependency
- Remove unnecessary try block
- Make relic_ids value assignment more explicit
  * This cryptic code was caused by trying to satisfy PEP8 in the wrong
    way. Making local variables for mutable objects is suboptimal.
- Add better error message for threadedcomment
Refactor search bar templates
Add library `bootstrap-slider`
Refactor `mapManager.js` to not modify its exports
Refactor MapManager map creation methods
Move zoom/lat/long tracking to MapManager
Always make new relic, log migrations, bump south

South upgraded to fix the bug documented here:
http://stackoverflow.com/questions/20446724/django-south-error-attributeerror-datetimefield-object-has-no-attribute-mod

Cleanup save_<model> fns, always return a value
Fix threadedcomment query to be unique

This was causing a crash due to multiple objects returned.
Merge pull request #1531 from steventlamb/topic/enhance_migrator

Topic/enhance migrator
Merge pull request #1530 from RickMohr/integrate-modeling-prototypes

Prepare for additional pages with maps
Fix lint, rename mapManager.js to MapManager.js
Downgrade South back to 0.7.6

I originally upgraded South to version 0.8.4 because a weird error was
surfacing while I was writing new migrations. I was getting crashes with
the message "AttributeError: 'DateTimeField' object has no attribute
'model'" while adding `DateField` fields to a model. I found a
stackoverflow post (linked below) that mentions this error. There was no
accepted fix other than to upgrade South to 0.8.4. So I did, and this
error went away.

In another context that I believed to be unrelated, the upgrade to South
0.8.4 began causing a crash in a `treemap` migration on a freshly
formatted database: "django.db.utils.ProgrammingError: column
"mapfeature_ptr_id" is in a primary key". This error also turned up on
our continuous integration server once changes were merged into
master. It was eventually discovered that this was caused by the upgrade
of South.

By the grace of the spirit inside the computer, the original error that
prompted this upgrade is no longer replicable. It must have disappeared
while refactoring/squashing migrations.

So, to fix the second, crucial error, downgrade south back to 0.7.6.
Remove undecided_fields from migrator spec

It's not actually used.
Remove unnecessary function call

This should speed up the migrator a little bit because it cuts out a function
call that happens once per field per record per model.
Migrator Improvements

Resolve overriding migrator defaults better - don't require each
override module to specify things they are just importing from the
default. Make sandiego rules clearer.

Make migration event save an incomplete state by default and overwrite it
with a final state.