Improved exceptions and reporting exceptions for command-line compiler.

After a discussion with Gav we made the decision to not use BOOST_ASSERT.
If it is a logical tautology, use assert.
If you could handle it here if this goes wrong, us asserts (gavs implementaion) like
if (asserts(...)) handleFailedAssert();
Otherwise use an exception.