Fixes needed to compile on Android

Apparently, we cannot call fileno() a method because there is
already the fileno() macro in stdio.h.

So, s/fileno/filedesc/.
Android.mk: add libneubot.cpp pollable.cpp

I forgot to add them when I blessed version 2.0.0.
Add joyent/http-parser submodule
Makefile.in: make sure we actually compile http_parser.c
Tell Makefile.in how to compile .cpp files

Apparently, there isn't a rule for that in BSD make.
Makefile.in: add explicit rule for http_parser.o

It turns out that, without an explicit rule, BSD make puts the
object file into the toplevel directory.

On the contrary, gmake puts the object file in http-parser/.

So, add an explicit rule to force the object file into the toplevel
directory of libneubot, and make the linker happy.
configure: Add OpenBSD-specific rules

Last time I checked, my code worked with both libevent 1.4 and
libevent 2.0, therefore, there was no need to add compiler flags
on OpenBSD because OpenBSD includes libevent 1.4 by default.

Now, however, libevent 2.0 is needed; therefore, compiler flags
to consider /usr/local are now needed as well.
echo poller utils: do not use libevent 1.4 headers

Predictably, if we mix libevent 1.4 and libevent 2.0 headers, the
compiler is not going to like it.

Always use libevent 2.0 headers, since we use libevent 2.0.
Makefile.in: more warnings
poller.c: silence warnings
Delete (and ignore) files generated by SWIG

Rationale: since I work with systems using different versions
of SWIG, I'm getting tired of having to revert the small changes
caused by such different versions all the time.
configure: make swig optional

In theory, one can build libneubot without swig (which is used
to build files that are only used by me to experiment), therefore,
do not fail if swig is not installed.
Merge branch 'build_system_luv++'
README.md: update
pollable: new 3.0 API (closer to what was API 1.0)

The new pollable API is closer to what was API 1.0 with respect to
the signature of construct() and attach(). In particular, the poller
is now passed again to the constructor rather than to attach().

This is made possible by a new implementation in which we exploit
the fact that, in C++, a struct can inherit from a class, and, vice
versa, a class can inherit from a struct.

Another trick is that we use a static constructor that does not
raise exceptions and that combines the construction and initialization
phases into a single step, thereby emulating the behavior of what
is the moral equivalent of a constructor in C.

Therefore, it is possible to wrap the C++ code (which, let's remember
that, is very useful to produce good SWIG wrappers) with C code easily.

I need to crank the API again, because I've changed again the arguments
that are passed to construct() and attach(), and because I've renamed
the fileno() method get_fileno().
Make sure that, on OpenBSD, we link with libevent2
Move Python test files in the test directory

Rationale: the scripts have also been modified to fetch the
libneubot.py installed at /usr/local/share/libneubot, allowing
us to test the installed libneubot.py.

On the contrary, when these files were in the toplevel dir, they
fetched ./libneubot.py, therefore, we had not the guarantee of
installing a good and valid copy of libneubot.py.

While there, zap a useless import.
Implement and use neubot_info()
Correctly export neubot_strtonum() to C++ code
Make neubot_timeval_init() more useful

The new neubot_timeval_init(), in particular, allows one to
write timeout handling in less lines of code.