Drop some overly-verbose debug printing.
Trim now-unused search/fork code.

Now that we no longer fork within search, we don't need to keep track of the next free instance.
Convert instrumentation lib to standalone tool.

Previously, we ran LLVM's 'opt' with an argument that told it where to find the TESLA instrumentation library (TeslaInstrumenter.{so,dylib}). This caused a lot of whinging about parsing command-line options multiple times: once when 'opt' started and once when our library was loaded.

This commit creates a standalone TESLA instrumentation tool, based on 'opt', that only loads TESLA passes but still allows some useful 'opt' arguments (e.g. -S: produce readable IR and -verify-each). This also makes the instrumenter conceptually self-contained and (hopefully) easier to use.
Use the same -fvisibility flags as LLVM.

I would've expected ${LLVM_DEFINITIONS} to include -fvisibility-inlines-hidden, but apparently it doesn't...
Drop superfluous tesla:: within tesla namespace.
Use -verify-each for sanity purposes.

We might want to remove this again when doing compile-time performance measurements.
Update some copyright lines: it's 2013 now.
Add or fix some Doxygen file descriptions.
Rename 'Automaton' to 'Assertion'.

I'm about to write the real Automaton class, which will map these assertions about sequences of events into a realisable DFA. Rename this stuff out of the way to avoid confusion.
Trivial: improve aesthetics of make output.
Only parse TESLA assertions in TESLA mode.
Fix tool invocation to remove linker warning.

See: http://llvm.org/bugs/show_bug.cgi?id=14676.
Trivial: style fixes.
Turn building of the 'tools' directory back on.

Fix a CMake build file, re-enable the build it describes.
Trivial: refactor generation of 'out', 'err'.