Templating benchmark functions
Context::finish() finishes all queues
Improved formatting of profiler output
Updated benchmark example

* Benchmark both single and double precision
* Take command line options

close #52