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.
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.
Merge pull request #66 from glenebob/npgsqltypes_files_refactor_3

Npgsqltypes files refactor
Fix EF call to ConvertToBackend() (which now returns byte[], not string).
Merge pull request #71 from glenebob/ef_convert_to_backend

Fix EF call to ConvertToBackend() (which now returns byte[], not string)