Remove more spurious unistd.h includes.
Remove even more spurious unistd.h includes.
Fix some Visual Studio compile errors in enumpoly.
Use Boost.Program_options instead of getopt for command-line parsing.

Added Boost to CMakeLists.txt, using its program_options library because Visual Studio doesn't support the getopt functions.