Add developer documentation

This readme file explains riak_ensemble to developers wishing to
understand what the library does and how it is implemented in the code.
It is a guide for developers who wish to contribute or maintain it, with
hopefully plenty of explanations and diagrams to help them quickly grasp
all the information.

Notice that it does not include information about the integration of ensemble into Riak,
just how it works as a generic library. The riak_core and riak_kv repos will host this information. 

It also includes a script to help maintain references to functions in
the code.  Run the update-doc-lines make target after compiling the
library to update the markdown, then check in the changes.

Everybody is invited to review and give feedback on this, as we need to make it as broadly useful as possible. Documentation is never done

View it using the branch link to verify how it looks on Github, that the links are correct, etc:
https://github.com/basho/riak_ensemble/tree/feature/add-docs/doc

`If the read_repair option is passed, however, the worker will always fetch the value from a quorum of followers, requiring that at least one of the returned values matches the version in the local tree`. I don't think this is strictly true. If there is a value but the entry doesn't exist in the tree it will still, be deemed valid. See https://github.com/basho/riak_ensemble/blob/feature/add-docs/src/riak_ensemble_peer.erl#L1695