use non-blocking socket; decrease timeout after io

switching to non-blocking sockets solved:

* at the moment we use select() -> read() on blocking socket,
  sometimes however select() might give a socket to io from
  and the io operation will block

* we were always blocking on write(), which is of course problem
  if the connection succeeds, that does not mean that the write
  wont block

decrease timeout:
* there was an issue with 'read(), wait, read(), wait' scenarios
  where the timeout was always the same, so in theory it might
  lead to unexpectedly long request() calls.

  this requires Time::HiRes::CLOCK_MONOTONIC() which guarantees
  that the time value will always move forward (meaning it
  wont be messed up by time set for example), so we can simply
  do:
    $timeout -= $start - $clock();
  so every IO operation's wait time is decremented from the
  original timeout value
use next instead of continue; .. this is what happens after to much cing
just use POSIX(:errno_h)
typo fixes
Check if we have CLOCK_MONOTONIC at compile-time

This avoids a subroutine call and also allows us to easily test the code
that doesn't depend on CLOCK_MONOTONIC with
HIJK_TEST_NO_CLOCK_MONOTONIC=1, e.g.:

    HIJK_TEST_NO_CLOCK_MONOTONIC=1 TEST_LIVE=1 prove -Ilib -j 10 -r  t
    HIJK_TEST_NO_CLOCK_MONOTONIC=0 TEST_LIVE=1 prove -Ilib -j 10 -r  t
Check if we have CLOCK_MONOTONIC at compile-time (again)

I forgot one chechk in the previous patch.
Assigning undef to variables is redundant
remove the statements that requires a monotonic clock.

WIP
disable a few tests if $ENV{http_proxy} is there.

If it is there then it's likly the author needs the proxy to get out.
So we can't run those tests.
just wrong, plain wrong.
revert the write timeout to be just a connect timeout, like it used to be.
Merge branch 'non_blocking'