Initial cluster management rewrite and some DDL

The cluster management is not complete, but it is reasonably stable and correct. It cannot correctly configure the transaction agent, but I am going to rewrite that anyway. Before I do that I need to understand the internals of the system better. I've decided to start that by writing DDL parsing code, therefore this pull request also contains some DDL for CREATE TABLE and nascent DDL parsers for DROP TABLE and ALTER TABLE.