poll/2,3: indicate timeout using {error,timeout}

Imitate gen_tcp and return {error,timeout} when the timeout has elapsed:

    1> gen_tcp:connect({8,8,8,8}, 80, [], 10).
    {error,timeout}

    2> {ok, S} = gen_tcp:connect("localhost", 22, [binary, {active,false}]).
    {ok,#Port<0.815>}
    3> gen_tcp:recv(S, 0, 1).
    {ok,<<"SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1\r\n">>}
    4> gen_tcp:recv(S, 0, 1).
    {error,timeout}

The alternative was to follow select(2). select(2) does not indicate an
error in the event of a timeout (it returns 0 file descriptors). EINTR
is the closest in meaning, except that it is possible that returning
this value may mask real events.

ETIMEDOUT is the closet in terms of established POSIX errors. It is
used with connect(2).