Replace string eval with define_method

In the majority of instances, using define_method over eval'ing a String
is better, and safer. See:

http://tenderlovemaking.com/2013/03/03/dynamic_method_definitions.html
Remove string eval and replace with class_exec.

These two methods are particularly tricky in their use of string
interpolation for the `class_eval`. To remove the string passed to
`class_eval` one of two approaches is possible:

  * Retain the `class_eval` and exploit the block closure by defining
    local variables referencing the instance variables to be used in the
    eval block
  * Switch to using `class_exec` which was introduced in 1.8.7 and 1.9.
    This allows for instance variables to be passed into the block
    creating block local variables

I choose the latter for writing cleaner code and to embrace the future
dropping of support for 1.8.6.
Remove mock and stub style doubles.

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Flatten class_eval into define_methods messages.

Remove the instances where `class_eval` is there only to change the
value of `self` for the `define_method` message. Just send it directly
to the desired object. Use `__send__` as `define_method` is private.

Remove the superfluous instances of `to_syms`.
Remove extra to_sym.
Remove `any_number_of_times`.

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Remove any_number_of_times_spec now that the method is gone.
Reword a couple of confusing changelog entries.

[ci skip]
Use new `allow_message` API.
Update changelog to reflect 2.14.0 release.

[ci skip]
Master is 3.0.0.pre now.

[ci skip]
Works around Rubinius bug
rbx build is green; let us try to keep it that way
Add missing 2.13.1 release notes.

[ci skip]
Add spec documenting the fact that null-ness doesn't persist between examples.
Revert "rbx build is green; let us try to keep it that way"

This reverts commit 8d6eb5d2e527832f91e747863fcff32bc378d40f.
Update changelog with 2.14.1 release notes.

[ci skip]
ensure null objects behave correctly with to_a and to_ary
1.8.7 has a default implementation on top
more descriptive comment