Add assertions utility file.

* RELEASE_ASSERT for the-world-is-burning errors. Equivalent to qFatal.
* DEBUG_ASSERT for debug-build assertions (fatality controlled by scons
  flag). Compile out in release builds. Equivalent to qFatal or qWarning
  depending on SCons flag.
* DEBUG_ASSERT_AND_HANDLE for debug-build assertions and a handler block
  that is run regardless of build-type to handle the error gracefully.
* Update SConscripts to add the necessary defines.
Convert most Q_ASSERTs into DEBUG_ASSERT_AND_HANDLEs.

Handle errors gracefully in release builds.
Remove math_clamp_unsafe / math_clamp_safe.

Use DEBUG_ASSERT to check validity of bounds.
Fix math_clamp range errors that were hidden due to math_clamp_unsafe.