centralize TypeToken creation

this ensures TypeTokens are created properly and reduces thrashing.  Next step is to avail a function to get a type-aware method directly, 

ex. `Invokable<T,R> Reflection2.getMethod(TypeToken<T> owner, String method, Class<?> ... params);`