Asserts historically only have been on in debug builds however
running the tests in a debug configuration "takes a bit" especially
if cycles is enabled.
This PR proposes compromise, release builds with asserts enabled.
Naturally we would never ship this to end users, but for devs and
the CI pipeline this could be useful.
Some minor cleanup needed to be done, since some code assumed `DEBUG`
and `NDEBUG` being guaranteed inverse of each other which no longer
holds true. Further clean-ups / additional asserts can be enabled
by looking for code guarded by an `ifdef #DEBUG` for now however I
set the bar at not adding additional warnings while building.