Change getEntitiesFor to return pointer to vector
Change Listener::receive to take non const object (too much hassle to
keep)
Improve documentation and change to shared_ptr storage.
Return copied shared_ptr in remove to avoid any chance of UB
Complete implementation of Engine
Remove non-shared-ptr methods to simplify API and reinforce ownership
ideas.
Fix bug in add and remove component listeners where copies of pairs
were used instead of references to the originals
Update to reflect Signal, Engine API changes regarding shared_ptr
Complete tests for Engine
Remove single-argument Family::getFor and change test references to it
to init_list version
Update README for completed Engine and test coverage.