Add SetSockOptStringNil method on Socket.

Since Go will not allow nil where a string is expected, there is no way
to change the implementation of existing methods to accept nil strings.
This is necessary to properly support e.g. TCP_ACCEPT_FILTER, which can
only be cleared by setting it to nil.
Add a test for SetSockOptNil.