Asserts are now more defensive and diagnostic. Initially asserts provide a hard
break in the program, and the intention is to disable asserts for release.
Having experienced bugs in release mode due to optimisations with asserts off
there's little protection against errors that occur in release mode since all
asserts are off.
Now asserts can be used in release mode whilst still evaluating the expression,
and allowing user messages/diagnostics to console.
Mesh rendering was not waiting until all jobs were complete before moving on
causing longer jobs to use old pointer references once the next frame started
rendering.
Phasing color modulation over time would make bitmaps become transparent and
show layers underneath even if alpha was set to 1. This was caused by the
precomputed 1/255 calculation #defined in DTRRender which was missing the
precision required so floating point errors began to accumulate causing
erroneous colours.