more specs/docs
_changes include_docs=true supports deleted docs (BugzID 11288)
Assign a unique ID to each request
Respond with not_implemented on purge_docs instead of crashing
Multi-faceted refactor of error logging

* Store errors as instances of internal #error{} record
* Move error buffer API calls to rexi.erl
* Don't badmatch if an old process exits abnormally
* Trivial rename of internal state fields
Move #error{} definition to rexi.hrl
Include the exception class in the #error{}
Fix a minor problem in the README and add a couple of links
Remove trailing whitespace
Add .gitignore
Consolidate ensure_exists code in mem3_util
Use more consistent and descriptive config keys for mem3 DB names
Remove trailing whitespace
Include accumulator in timeout response, BugzID 11432
Add clause for triggering replication with only Name and Node
Use shard_db from config instead of hard-coded value
Add convenience function for access to shard mapping document
handle nthtail call when Pos2-Pos is greater than the length of the Revs2 list.
Fix sync triggers based on nodeup/nodedown events

Two bugs are fixed here.  The gen_event manager in which the mem3_sync
event handler is installed was not registered to receive nodeup and
nodedown messages.  But even if it had been registered, the messages
would have been ignored because the event handler was looking for them
in handle_event, not handle_info.
Create missing local shards when building the partition table cache

Thanks to Bob Dionne for the initial idea.