Unify assert mechanism
It has been decided that an assert that throws an exception instead of terminating the program is not all that great of a feature and it causes some limitations on how it is used. Instead, the two different types of assert have been replaced with a single version that behaves like the POSIX version.