CMake cleanup

Pull request is for PnP... but I changed a lot so you all might want to look it over.  Ask if anything looks weird cause we all know I'm not perfect. There is nothing you "need to know" -- everything still works the same as before when building in source.

* Don't fail very miserably when attempting to build out of source (the original project, but I spent so much time in CMakeLists trying to make the above work, I could not just stop there...)
* New option for handler tracking, might help a lot in debugging segfaults.  Needed to audit clean shutdown.
* version.h removed; version definition is moved into config.hpp, where config belongs
* Don't run Doxygen if it's not installed
* Ensure Boost is new enough to actually compile PnP (currently 1.47 for asio::signal_set, as far as I know)
* Miscellaneous corrections and cleanups

This does not yet add support for installation.  We still need to do this, but first we'll have to teach the DGI to look in multiple locations for default config files (first ./config, then /etc/freedm/...).  But we can do that separately.