NH-2380, NH-2486, NH-2645: Linq - Cannot perform distinct after projection

Attempting to execute a Linq query that selects out an anonymous or regular type will result in a NotSupportedException being thrown. For example, performing the following query:

```
session.Query<Person>()
    .Select(a => new { a.Name })
    .Distinct()
    .ToArray();
```
or

```
session.Query<Person>()
    .Select(a => new PersonDto { Name = a.Name })
    .Distinct()
    .ToArray();
```

Covers 
https://nhibernate.jira.com/browse/NH-2380
https://nhibernate.jira.com/browse/NH-2486
and https://nhibernate.jira.com/browse/NH-2645