Marked version.
* Proper locking.
* Moved code (a lot).
Improved a code little.
This piece is not needed.
Lock free events.
Added comment.
Only read allocate response if allocate request was sent.

When a statement is already allocated, no allocate request is sent, but an attempt is made to read the allocate response. As one too many responses are read this will block on read of the statement type (as there is no packet on the incoming stream).

As far as I can tell this problem never surfaces in actual use, as statements are only prepared (and allocated) once. However I tripped over this when following this example in Jaybird (where a statement handle can be reused and re-prepared).
Merge pull request #7 from mrotteveel/master

Only read allocate response if allocate request was sent.
Simpler code.
Merge branch 'events-fix-hashtable'
Bumped version
Fixed paths.
Added readme.
Changed versions.
Checks for datatype.
Wrapped calls.
Merge pull request #9 from cincuranet/NullEmbeddedFix

Checks for datatype.
No need to jump to int.
Merge branch 'master' of https://github.com/cincuranet/NETProvider into PointerFix
IntPtr direct.