NH-3291 Optional caching of AliasToBeanResultTransformer instances

https://nhibernate.jira.com/browse/NH-3291

Memory consumption would increase depending upon how many different types are used. However I was thinking that it would be preferable to have more memory usage versus the cost of reflection every time a new transformer is created.

New transformer instances will not be automatically cached.  Instead method overloads have been added which have a parameter that specifies whether or not to use the cache.  The cache is not used by default in order to maintain backwards compatibility.