Add a signal handler to trigger shutdown and be more paranoid about
libuv doing things asynchronously. This should fix test cases not
shutting down properly.
Enable the server to watch for filesystem changes. This patch includes
* The infrastructure for the file watching
* makes that infrastructure available to cmServerProtocols
* Resets the filesystemwatchers on "configure"