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 think the more I read about it, the more it seems to me way more similar to Raft than Vertical Paxos.  I suppose we could debate that a bit.  After doing some good readings on the Paxos, Vertical Paxos and Raft papers before working on this, I don't think I would have recognized any of the Paxos ideas here if I wasn't told it was related.