Basic patch for android cross-compilation.

Commented non-existing functions in android NDK.
Prefix scripts execution with shell binary to allow execution on no-exec mount points.
Everyything is currently hard coded, while it should use pre-compiler variables...
Replace hard-code with new ScriptsInterpreter configuration property.

This new setting allows choosing a custom script interpreter used for the various tinc callbacks.
If none is specified, the script itself is called as executable (as before).
This is particularly useful when storing tinc configuration and script on a mount point with no-exec attribute.
Add basic .gitignore file, cleaning (most) files generated by autotools.
Use __ANDROID__ define rather than dirty hard-code to allow android NDK cross-compilation.
Android cross-compilation instructions.
Attribution for Vil Brekin and some code style cleanups.
Don't ignore Makefile.am.
Fix links in documenation.
Output details of encryption errors
Attribution for Martin Schürrer.
Add strict checks to hex to binary conversions.

The main goal is to catch misuse of the obsolete PrivateKey and PublicKey
statements.
Clear connection options and status fields in free_connection_partially().

Most fields should be zero when reusing a connection. In particular, when an
outgoing connection to a node which is reachable on more than one address is
made, the second connection to that node will have status.encryptout set but
outctx will be NULL, causing a NULL pointer dereference when
EVP_EncryptUpdate() is called in send_meta() when it shouldn't.
Fix warnings from cppcheck.
Clear Ethernet header when reading packets from a tun device.

This fixes a warning from valgrind about uninitialized bytes, which were being
sent to other nodes.
Clear status and options fields of unreachable nodes.

Conflicts:
	src/graph.c
Fix warnings from groff.

Conflicts:
	doc/tinc.conf.5.in
	doc/tincctl.8.in
Using alloca() for a constant sized buffer is very silly.

Cppcheck said using alloca() in the 21st century is silly anyway.
Make sure PMTU discovery works in switch mode with VLAN tags.

Before, when tinc saw a packet larger than the PMTU with a VLAN tag, it would
not know what to do with it, and would just forward it via TCP. Now, tinc
handles 802.1q packets correctly, as long as there is only one tag.
Mention in the manual that support for LZO and zlib can be disabled.
Fix configure script help text for --enable options.