Remove code duplication in TypeExtensions
Remove code duplication in ProcessNonAggregatingGroupBy
Optimize code in ProcessNonAggregatingGroupBy
Resolve Key and Element selectors with standard re-linq's ReverseResolvingExpressionTreeVisitor in ProcessNonAggregatingGroupBy
Merge branch '3.3.x'
Add ability to project nested enumerable with self element projections (NH-2986)

Sample query:

    var timesheets = db.Timesheets
	.Select(o =>
            new
                {
                    o.Id,
                    Users = o.Users.Select(x => x)
                })
    .ToList();
Add ability to project enumerables in linq without parent (NH-2986, NH-3052)

Sample query:

    var timesheets = db.Timesheets
	.Select(o =>
            new
                {
                    Users = o.Users.Select(x => x)
                })
    .ToList();
Remove code duplication in NestedSelectRewriter
Implemented NH-3333

Very big kudos go to Dmitry Naumov for his help
Add more tests for NH-3333
Refactoring
Add support for multi-collection projections
Ported back support for collection projections (NH-2986, NH-3052, NH-3333)
Merge branch '3.3.x'
Improve Tuple equality

Let's make clear statement that Tuple can't have null Items and Items
can't change (as well as Tuple's hash code)
Fix ProjectionsTests on Oracle and PostgreSQL
Merge branch '3.3.x'