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

This line seems a bit imprecise to me: "As long as a majority of peers do not suffer data corruption and can eventually come online and talk to each other, the algorithm is safe."

I believe there may be caveats such that we protect against more than a majority of corrupted nodes, especially if a majority of trees are in-tact. Additionally, nodes coming back online being required is not a safety property, it's a liveness one.