NeubotEvent_construct(): treat negative timeouts as infinite
poller.c: track attached/detached via explicit state variable
NeubotPollable_detach(): remember to del the events
NeubotPollable_close(): remember to free() self
poller.c: cosmetic change
NeubotPollable_set_timeout(): libevent expects relative timeouts
poller.c: use EVUTIL_SOCKET_INVALID rather than -1
poller.c: don't use NeubotPoller_sched for the periodic event

Eliminates the risk of abort()ing and removes one XXX from the code.