posix: add better error reporting on sockaddr table member fields.

* ext/posix/posix.c (try_getfield): New function.  Wrap
`lua_getfield`, but push more accurate error diagnostics in case
of type mismatch.
(sockaddr_from_lua, Pconnect, Pbind, Psendto): Use it.
posix: provide idiomatic argument errors from sockaddr calls.

* specs/spec_helper.lua (init): New helper to return a partial
application of expected argument error call.
* specs/posix_spec.yaml (bind, connect, sendto): Use it to
specify expected bad argument errors.
* ext/posix/posix.c (try_getfield): Move from here...
(checkfieldtype): ...to here.  Lua functions normally throw an
error for bad arguments, so do that for posix API argument errors
too.
(sockaddr_from_lua): Use it.
Provide a default case branch to report unsupported socket family
arguments.
(checknargs): Throw an error for too many arguments.
(Pbind, Pconnect, Psendto): Use it.
Revert to reporting invalid socket address if sockaddr_from_lua
fails without diagnosing a type error.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Merge branch 'zevv-sockaddr-errors'