Threading

Updated the Thread class substantially.  Now has a variadic constructor
which makes wrapper function obsolete and allows it to create threads
from lambdas.  Also has functions for obtaining information about the
current thread, which is required for building faux recursive locks
(among other things).

Started work on a makefile, but it's far from complete, so updated
.gitignore to exclude that from the repo for now.