Events now register with shared_ptr

Registering dynamically-allocated callback class instances would fail,
so introduced the use of shared_ptr
Cleanup of some asserts and comments
Also removed empty EventManager file