Enable unit testing framework

I want to be able to do better tests of parts of tcpcrypt during the build.

A strong test suite should make it easier to make changes to the codebase with confidence, and should encourage the definition of clear internal interfaces for better modularity.

This branch sets up a test suite using autotest (from GNU autotools), but includes only two tests: a simple version check, and the HMAC SHA-256 test vectors from RFC 4231.

The most radical change made in this series is e42c53ba29ff58e19f5d5f9ac08e086c948c7b7c, which transitions from recursive Makefiles to a single collected Makefile at the top level, which made it much more straightforward to express the relationships between object files in different directories.

There are other good arguments for preferring a single makefile for a project like this: 

http://www.vinci.org/rlv/d/build/rmch/recu-make-cons-harm.html