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

I'll try to rephrase that without using words related to "safety" or "liveness".  What I am trying to say is that the system should go back into a working state as long as a majority of nodes can come back online and K/V objects won't have lost values as long as there wasn't a quorum of data corruption on its value.