Closes #121

Inject IListeners into Session constructor
Closes #123

Remove the HACK statements for calling older methods by wrapping them in
compiler directives #if NET_3_5
Closes #137

Remove IAdvancedSession.Projection()
Closes #135

In ConfigureExtensions set log instance in SetLogResolver method
Closes #133

Trace Warnings, Errors and Fatal if debugger attached.
Closes #120

Added an IReadOnlySession
Closes #134

Use the GuidComb algorithm for Session ID
Closes #129

Reverse listeners before calling After methods
Closes #124

Check and update all [DebuggerDisplay] values
Closes #138

Add a HasValue property to IInclude
Closes #139

The internal method on listener collection should now be removed
Closes #140

Move logic to get and set property values into ObjectInfo
Added a few missing tests
Updated class diagrams
Refactoring SqlDialect

Some updates to make it easier to implement MySqlDialect and
PostgreSqlDialect
Updated tests following SqlDialect refactoring
Further refactoring of SqlDialect

To help support MySqlDialect and PostgreSqlDialect
Closes #144

Add support for PostgreSql
Closes #143

Added support for MySql
Updated the paging for SqlDialects

I'd missed the fact that although SQLite, MySql and Postgre all support
the LIMIT keyword, they don't all work the same with their native
implementation.