Working, if naive, persist implementation.

Currently blocks the server mainloop waiting for disk I/O whenever a chunk
is generated or a block changes, causing a short (5-15ms on my machine) lag
spike.

There's at least a couple of easy future optimizations we can do:

1) Not blocking the server mainloop
2) Keeping around a transaction log (in memory and possibly periodically
   flushed to disk) So you don't have to rewrite the whole chunk every
   time you change a block