Etags are now persisted with the documents.

This ensures that etags are consistent across queries, even when
projection queries are issued.

Please note that etags will only be stored along with new documents
created and/or edited via API methods (POST/PUT/PATCH). Documents
inserted by other means and those stored with v0.4 and below will keep
working as previously: their etags will be computed on-the-fly and you
will get still be getting inconsistent etags when projection queries are
issued.

Closes #369.