Use the provided argv provided by the command line builder and not
the original program argv
Pass a vector of environment variables to RelaunchIfNecessary
Implemented yiqi::commandline::Environment with accompanying tests.

Also provided a test fixture for checking that value types behave in a
sane manner (ValueTypeConformance). Pulled out the ExceptionCleanup
class into the yiqi::util::ExceptionCleanup namespace.