NeubotPoller_construct: restructure the error path for correctness

This commit restructures the error path for correctness:

- return NULL immediately if we cannot initialize libevent or we
  cannot allocate the poller;

- if we have the poller, initialize the two events first, therefore,
  we can jump to failure safely (see below);

- if we fail to add an event, delete both events (which are
  initialized, and therefore can be safely deleted), then free
  the poller, which is for sure allocated.