Mantle v0.015

Hash, Message, Singleton, Module, bunch of things...different casts.
Trying to maintain safety, but it doesn't seem like we can use the
weak_ptr/shared_ptr pattern, because we can't access the shared_ptr from
within the class the shared_ptr is holding. At least for
subscribe/unsibscribe anyways.