NH-3675

https://nhibernate.jira.com/browse/NH-3675
Initial implementation with unit tests
Believe me, compiler will generate the same code for both, and I've checked, this is not more performant:)