Implemented a class method variant of Model.update()

Added some cleverness to `update()`
It is now possible to call `Model.update()` either as an instance or a static method.

Instance version assumes the update query is `{_id: self['_id']}`:
    `thing.update(<update>)`

Static version allows you to provide the query (essentially forwarding to the collection):
    `Thing.update(<query>, <update>)`