Patched TCP receive

Firstly:
C99  and  POSIX.1-2001  specify  that  the results are undefined if a call to
sprintf(), snprintf(), vsprintf(), or vsnprintf() would cause copying to take
place between objects that overlap (e.g., if the target string array and one
of the supplied input arguments refer to the same buffer).

Secondly:
The stack on the NIOS is 2048 bytes long.

And we economized one copy, return an error on buffer overflow, and don't use
string functions on data that's not (yet) logically a string.