In SystemManager, return pointer to templated system rather than its base type (it's even being upcasted)

(cherry picked from commit 11d92f0bad02779526c876005c68fc90380376be)
templated get functions don't downcast anymore

(cherry picked from commit 32ac0a441ede2b6b51c22b20fe485c0e92955cb0)
Optimized ComponentMapper