Async notification fixes

Switch to the correct thread syncronization method, Monitor and lock{}.
Use a reasonable timeout on Poll(), which take micrseconds, not milliseconds.
Mono specific workaround for seemingly buggy System.Threading.Monitor implementation.
Rearranged project build, single sln/csproj

- We now have one sln and one csproj, with build configurations for
  .NET 2.0, 3.5, 4.0, 4.5
- An additional build configuration produces .NET 4.5 with Entity
  Framework 6. EF6 was brought in via nuget as a dependency, but
  its DLLs are referenced conditionally based on the build config.
- .NET 2.0 uses LINQBridge for extension method and LINQ support
- Removed Visual Studio 2008 support
- Deleted monodevelop mdp/mds, mono xbuild compiles the sln/csproj
  files just fine
- Mono does not build config 3.5, 4.0, 4.5 because they rely on the
  old (non-opensource) Entity Framework. 4.5-EF6 builds fine.
- Mono does not build config 2.0 because of a LINQ/LINQBridge issue
Added Mono.Security for .NET 4.0

The build configurations for .NET 4.0 and 4.5 now reference
the 4.0 version of Mono.Security, while the configurations
for .NET 2.0 and 3.5 reference the 2.0 version as before.
Created .sln per VS version

Important in order to exclude .NET 4.5 from VS2010 and allow
for automatic opening of the correct VS version from explorer
Corrected debug build config of NpgsqlTests
Release connection into pool with "Discard All"
resolve conflict when merge PR52
store byte array instead of string in NpgsqlStartupPacket
rename length to packet_size
Merge pull request #54 from ChenHuajun/discardall

Release resources with "Discard All" when return connection into pool 

I had made a new patch to release resources clearly with "Discard ALL" when return a connection into the pool,which is based on the following discussion. 
http://pgfoundry.org/tracker/index.php?func=detail&aid=1011241&group_id=1000140&atid=592

The major modificaions is as the following
1)Release resources with "Discard ALL" if the backend is 8.3 or later and the protocol is V3.
"Discard ALL" is introduced since 8.3 and it is not able to set session configulations via starup package while use protocol V2. So keep their behaviors as before.

2)Refactor the code to send starup package.
When use protocol V3,set session configulations via starup package,other than execute "set xxxx=yyy" later.

3)Add a test case

Regards, 
Chen Huajun
Revert "Merge pull request #54 from ChenHuajun/discardall"

This reverts commit eb2835bd13aea7ca8bf7d0357d72491c9e5084cf, reversing
changes made to 5e645045b0a5f48e6f8303f7760d59dd76b1ae1e.

There was a problem with this pull request and postgresql below 9.0 regarding extra_float_digits
Merge pull request #65 from franciscojunior/revert-pull-request-54

Revert "Merge pull request #54 from ChenHuajun/discardall"

This reverts commit eb2835b, reversing
changes made to 5e64504.

There was a problem with pull request #54 and postgresql below 9.0 regarding extra_float_digits
Merge pull request #62 from roji/build

Work on the build system

From @roji "As discussed on the mailing list, rearranged all the build files (sln/csproj) by framework and cleaned up lots of things - look at the commits for details."
GetSchema() connections are properly disposed

- NpgsqlConnection.GetSchema(...) now always disposes the temporary
  connection it allocates
- Fixes bug #1011334
- Converted NpgsqlSchema to the static class which it is
- Added test for GetSchema() during read
Npgsqltypes files refactor

There should be no functional changes in this commit.
Split NpgsqlTypesHelper.cs and NpgsqlTypeConverters.cs into more managable pieces.
Move class ASCIIByteArrays{} to ASCIIBytes.cs.
Move unused messages under NpgsqlTypesHelper.cs to Messages.cs.
Changed file encoding (removed unneeded BOM, it's just ASCII) and copyright date on FastConverter.cs.
Remove compile time condition on Sleep() in ProcessServerMessages().
Merge pull request #61 from glenebob/async_notification

Async notification fixes

This will fix the CPU hog problem you were seeing, and eliminates the need for the odd Sleep() call in ProcessServerMessages().

-Glen
Merge pull request #63 from roji/bug1011334

GetSchema() connections are properly disposed
Remove Messages.*, as the strings are not used at all anymore.