Create cluster interfaces and refactor

Complete refactoring of how clustering works and how data is distributed. Addition of WAL, write buffering, and failover for queries when a server is downed.