Fix scratch-overflow bug and recvfrom() bug.

When scratch overflows, we don't redirect buffer pointers to scratch,
but instead just record directly from the arg ptr.  Some syscalls
weren't handling that case.

Additionally, recvfrom() was trying to record nullable arguments when
they were null.

Resolves #286.  Resolves #447.