Using left outer joins for traversing navigation properties

Right now NHibernate aliases are constructed using `public ICriteria CreateAlias(string associationPath, string alias)` method which creates an inner join.

I think that left outer joins should be used for traversing navigation properties because using an inner join will result in all parent entities with null reference to child entity excluded from the result set when a navigation property is used in `$filter` or `$orderby` parameters.

For example, the query `$orderby=child/name` (without `$filter`) excludes all parent entities with `Child == null` which is definitely incorrect as `$orderby` shouldn't affect count of selected entities.

This pull request changes join type to left and fixes unit tests. 
I hope you will find it useful.