Add RAFT endpoints and fix cluster init bugs

We should break this section up a little bit at some point and call some smaller functions but we can do it in a separate PR.