Static Analysis, all OT Issues fixed.

I have re-written OT_ASSERT, and created a OT_FAIL macro as well (this just triggers an abort).

The macro now inserts std::terminate() into the code.

The ot_terminate() function is used to override std::terminate(), and will, on UNIX, do extra processing.

Lots of fixes.