Fix Benchmark.benchmark output with an empty caption
I noticed Benchmark.benchmark output with an empty caption has an extra space.
This is due to my change in r32269, so I am sorry, this is my fault.
I guess Benchmark.benchmark is not much used directly
and without caption though (and nobody reported this issue).
It also includes a fix to avoid defining constants at the top-level
(this was due to class_eval with a block) and a few other small fixes.
You can see the commits on my benchmark branch: https://github.com/eregon/ruby/compare/e3761441...benchmark
(Or https://github.com/eregon/ruby/compare/trunk...benchmark, after the last Merge commit)
Please let me know what I can do to help committing these changes.