Add *Context.SetLogger().
Remove ContextIsNil, SocketIsNil, and NotImplemented.

panic() is more appropriate in these cases.
Improve SetLinger and Close.

Increase test coverage, deal with some error cases more correctly,
and include inline documentation about assumptions.
Update README about public API.