In SystemManager, return pointer to templated system rather than its base type

Makes it much easier to use client-side, since no explicit upcasting is required.