IOCP.Windows: add a little to module summary
IOCP.CompletionPort: actually free Overlapped objects
Remove "Handle a" newtype wrapper

It was supposed to add type safety, to guard against associating handles with
an I/O manager expecting context values of one type, then using Overlapped with
a different type.  It doesn't really add type safety in our case, since:

 * We only care about a = Completion -> IO () in the I/O manager right now.

 * We are just casting SOCKET to HANDLE, and wrapping a HANDLE in the newtype
   wrapper each time does not perform any check.

I'd like to create my own Socket-like objects that contain a HANDLE, but it
would make adoption more difficult.  Aside: if this were an object-oriented
language, we could probably subclass Socket and do what we want.  That would
probably be more awkward in Haskell.
IOCP.Manager: add brief module summary
Export IOCP.Windows, and re-enable the testsuite

IOCP.Windows is exported for access to things like BOOL and ErrCode.