Optimizations to proc invocation to reduce allocation.

* Do not clone block if we aren't modifying frame self
* Do not create intermediate lists for 1.9 args setup
* Use preallocated, frozen Array for intermediate Array of size 0
Smarter omission of Fixnum alloc during times loop.
Reduce cost of cloning a binding.

Instance evals and define_method always force the binding
associated with a block to be cloned. This is a large part of the
cost of these call paths. This patch reduces allocation to
improve the performance of binding cloning.

* Make DummyDynamicScope.clone return itself
* Preallocate dummy scope on binding when setting up proc
* Copy dummy scope reference to new binding, to avoid recreating
* Reference an eval binding rather than creating DynamicScope[1]