Make sure records are created with a string _id

In mongoose v3.4.0 if the schema has the _id field set as a string and
no _id is provided it will generate an ObjectId. By explicitly giving a
default value for this field we avoid this issue.
Update mongoose to v3.8.5

This version of mongoose correctly handles assigning whole documents to
a string value field by casting it to the document's _id value as a
string, rather than a JSON representation of the document. This fixes
the issue detailed in #298 with creating memberships in the Migration
Tool.
Fix test failures resulting from mongoose upgrade

* Update error display to use the `.message` attribute of the error
* Remove invalid mongo queries [1] in the autocomplete module
* Add custom error messages to the instance model to match test
  expectations

[1] https://github.com/LearnBoost/mongoose/wiki/3.8-Release-Notes#validation-against-nonsensical-queries