Added test for subs.
Added diagrams of push and pop ops in queue.
Added module for std streams and asserts.

Including iostream inserts a global registration object into each
module it is included in. These are all run during startup. With
a moderate number of modules including iostream, this mucks about
with profiling.

Our assert mech uses ostream. assert.hpp has the potential to be
included in a ton of modules. Instead of including iostream
directly, we create references to the iostreams and include
those instead.
gcc will no longer strip release executables.

We can't profile them effectively when stripped. Stripping will be
handled as a post-process during deployment.
Replaced assert->MMC_ASSERT.
Queue no longer leaks.
Cleanup pass in test-queue.cpp.
queue test now waits to dispatch instead of burning up on spin.
Fixed intermittent deadlock while waiting for threads to start.
Changed some calls to dispatch() to dispatch_all().
Renamed queue::dispatch() -> queue::dispatch_one().