Add instrumentation to query cache

[fixes #3502]
Add ReadonlyDocument error
Rename State module to Stateful
Add readonly flags to documents
Add link to IRC on readme [skip ci]
Add documentation on readonly error
Remove thread local field selection
Readonly is based off selected fields
Raise error when saving readonly documents:

Documents loaded using #only on criteria will be flagged as readonly and
will raise a ReadonlyDocument exception when attempting to save or
update them.

[ #1908 ]
Raise error when accessing non selected fields.

[ #1908 ]
Include #[] and #read_attribute with missing attrs

[ #1908 ]
Don't allow readonly documents to be deleted.

[ #1908 ]
Update changelog
Add DocumentNotDestroyed error.

[ #3513 ]
Implement Document#destroy!

[ close #3513 ]
Use ActiveSupport::Concern
extract query cache common behaviour into module
Fix query cache on first/last calls.

[ fix #3514 ]
Bump to latest moped beta
Bump to beta1