Compute ObjectId locally rather than delegating to Mongo db

Was following a std sql pattern, but non-sql db's are slow write
and pymongo's ObjectId() is supposed to generate a true GUID
equivalent to waiting for the db to do so.

Gets rid of insert, get back id, update references cycle for just: generate id, insert or update.

@cpennington @singingwolfboy  please review