Fix #28: use elapsed seconds to compute timestamp
Fix #29: cache kernel names for profiler output

This should avoid excessive re-allocations of the strings and reduce calling
into the OpenCL run-time.