Return badarg on messages greater than 65535 bytes

Messages longer than can fit in a 2 byte header will cause the port to
exit (not sure what the behaviour of the erlang side is when a message
bigger than the header can represent is sent ... truncate?)

Be friendlier to the caller and return badarg. This will still crash the
process (unless badarg is caught).