recv: consistently return binaries

Instead of parsing the binary (which may fail on new platforms, etc),
return the raw binary.

Modify fd/1 and cred/1 to return the data not a tuple, so the functions
are symmetric, i.e., fd(fd(binary())) works.
fdsend/recv: represent an array of fd's as a list

Support passing multiple file descriptors between processes.
fd/credsend: support binaries and lists as data