Rewrite reflection stuff, inspired by @bergerkiller and BKCommonLib
Move field and method finding to SafeField and SafeMethod, this cleans up ReflectionClass