remove useless cast and use static_cast instead of C-style cast
improve readability of std::type_index use
use 'range-based for loop' to iterate through map
use upper camel case for method names
use 'Z' prefix for non-UE4 type names
add test code for ZServiceManager
use 'T' prefix for template parameters
move singleton part of ZServiceManager to separate class ZServices