Benchmark.run_for: new macro for testing for a certain time

Runs the provided block as many times as possible until the total
actual execution time reaches the requested execution time. Returns a
key/value list similar to Benchmark.run_for.