Return {error,einval} for invalid socket options

Previously setting a socket option not supported by the socket type, for
example rcvbuf for a push socket, would result in a badarg. Change this to
return {error,einval} instead, since this matches what the underlying
nanomsg library does, plus it makes more sense since the option itself
isn't a malformed argument. Also modify the appropriate options tests to
match this change.