Try to use stdint.h with gcc <= 4.4

There's no way to tell whether the architecture has its stdint.h, as
__UINT_FAST64_TYPE__ built in define didn't exist yet. Redefining the
types would break the build, and chances are we're not on some exotic
architecture where stdint would be missing, so let's assume it exists.
Don't pad the text address with the binary form

The buf gets copied to hostname and is present verbatim in logs looking
like pure random garbage. Moreover you can't really strlen() it.

This was likely some silly typo in inet_ntoa -> inet_ntop conversion for
ipv6, since it used to be correct before.
Fix some awkward NOIPV6 typoes and ommissions
Communicate SOCKS error states properly

This used to look pretty random :(

Try to keep the last decimal digits of internal errors sensible for v5
error codes. For most cases we can't really do much better than using the
value of one.

One specific code paths where we can return something more useful is the
authentication, where we not communicate the underlying error code or
signal an ACL denial.

As for v4, there's not really much space to be too smart as only the code
of 91 is meaningful. Therefore we limit the last digit to zero and one now.