.gitignore: ignore auto-generated files
Makefile.in: on clean, remove everything in .gitignore
gen_header gen_py: introduce a real object type

It was quick and dirty to consider c_void_p the same as py_object, also,
this decision was not serving me well.

With this commit, I introduce a new Object type that maps, on Python,
to py_object, and void_p now maps to c_void_p.
utils.c utils.h: add a couple of useful functions
poller: export simpler functions to register/cancel I/O

I have played around with the Pollable stuff for a while, and it
turns out that it was not so simple to use the Pollable interface
from Python, I mean, without segfaulting a lot.

Therefore, under the shower, I had the idea of a simpler interface
that should be easier to manage from Python.

So, here it is. It leverages on how libevent is implemented to
unify the scheduling of a function and the scheduling of I/O.

As expected, it was easier with the new interface to integrate
with Python without crashing the world.

The cool thing of this new interface is that you don't need to
keep the state both in Python and in C, however, on the flip side,
this new interface is less efficient because it allocates and
destroys many event structures.

No API or ABI changes. Unit test included.