Singleton Container

Going to be moving modules over to a singleton-/factory-based model.

Accordingly, wrote a threadsafe singleton container template.

This is superior to the typical singleton/factory model (using factory function local statics) due to the fact these singletons can be destroyed for "hot" resets or to ensure proper order clean up -- they don't simply persist until the program ends.
Entity ID Generator

Added a thread safe Entity ID generator.  It simply outputs continuously increasing IDs, and uses an unsigned integer internally to avoid undefined behaviour on overflow.

Uses the new factory/singleton model.