Open Generic mappings

Addresses Issue #59

Changed layout to class structure and put generics at the end of the list.
Once found it will cache the map into the type mapping and the other find mappings will find it next time.
Can this be modified to use expression trees? Bare reflection is pretty slow by orders of magnitude.