Handle transitions between server configurations nicely

Currently if you turn on SSL in a config that formerly used SSH,
you'll get a ton of errors unless users manually start. This detects the
transition and handles it for you. It also supports having both SSH and SSL at
the same time, in case you're into that sort of thing.

* Update state to store more stuff
* Make an efficient state-setter
* If the former config of chef-zero and the current config differ, restart
* Always generate the scheme dynamically
Merge pull request #22 from jaymzh/transitions

Handle transitions between server configurations nicely
Support empty basedir
Merge pull request #23 from jaymzh/emptybase

Support empty basedir