Add a node simulator, huge improvements to scheduler

Scheduler now supports a (locking*) macro which allows the scheduler to
resolve what would ordinarily be deadlocks by moving forward in time.
Also includes a basic simulation of a random load balancer, pool of
nodes, and a singlethreaded server.