Add test for ConcreteMethod and fixes to pass test
Refactor type parameter to only have 1 TypeParamaterName and make ConcreteMethod.getCopy() do full deep copy
Refactor out TypeParameterName - making TypeParameter the type