Avoid redefine existance methods

If you run RSpec test suite and turn on Ruby warnings (`ruby -w`), there
are several warnings about method redefined:

* /lib/rspec/core/configuration.rb:191: warning: method redefined;
  discarding old pattern=
* /lib/rspec/core/example.rb:210: warning: method redefined; discarding
  old run
* /lib/rspec/core/example.rb:204: warning: previous definition of run
  was here

By `undef` these method first we can silence those warnings from Ruby.
Merge pull request #1584 from sikachu/remove-warnings

Undefine methods before redefining them