Couple of changes on the updates semantics

* update_all/delete_all/replace_all are just proxies to the rql command.
  They return the full hash of returns
* instance.update and instance.replace are gone. They are weird and don't belong
  on the model instance as we should be using something special for atomic
  updates.
* we no longer use replace but r.literal() for hashes
Reading data from the database does not go through the setters
Dirty tracking tracks undefined to nil assignments
:required option on fields/belongs_to
Quick refactor of field
Provide a readonly option for fields (and id)
Removed inc_all/dec_all
Pass the criteria in the middleware stack to make it more hackable.
Improve the reconnection mechanism
Removed the DocumentWithTimestamps module
Add a nicer error message for DocumentInvalid
Compatible only with ActiveSupport4 actually
Version Bump 0.13.0