Tagged terminal skeleton

This is unfortunately impossible to implement right now,
but the idea is nice enough to keep it in a separate branch.
Partially working terminal tagging

Each proto context participating in kernel generation carries around generic
state (std::map<std::string, boost::any>) that may be used by some of kernel
generation functions.

refs #39
Terminal tagging works for all kinds of terminals

refs #39
Restricting terminal tagging to terminals
typo
Tagged terminals section in README
typo
Fixed bug in multivector expression assignment
Using taged terminals in combined expressions
Factor out stopwatch class from profiler.
For standalone use, direct access to individual times.
Use program_options in fft_benchmark,
More comfortable than editing the source.
Uses stopwatch for median times, less jitter.