Allow rspec-core to be used without -expectations or -mocks.

We've always had the philosophy that the various RSpec components should obviously standalone. As it is at the moment, when one specifies only `gem 'rspec-core'` in one's Gemfile it will only pull rspec-core and rspec-support.

This does mean, however, that when a user tries to run tests with a freshly initialised project with this setup they will get a backtrace saying that neither of `rspec-expectations` or `rspec-mocks` could be loaded. This way around, if they simply want to raise to cause tests to fail, they can.

I was chatting with @tomstuart at a conference recently. He said that whilst he was teaching RSpec he likes to show each piece working on its own, before showing them together. He lamented that he has to sweep modifying the spec_helper configuration under the table and that it'd be nice if this just worked out of the box.

At the same conference @hone02 stated that he likes to use RSpec's runner, but the sorts of things he's running merely require raises after conditional checks and so he doesn't really want to load either -mocks or -expectations.

I guess basically, the question is: is this a feature that we want to have as part of RSpec Core, or is the current setup where you have to modify your spec_helper acceptable?
I’m concerned that this implementation allows an explicit `RSpec.configuration.expect_with :rspec` to fail silently when `rspec-expectations` isn’t loadable.

Might it be better to do the `begin`/`rescue` inside `#expectation_frameworks`, since that’s where the defaulting happens? That would more closely mirror the `mock_with` behaviour, and you’d still get an exception if you said `expect_with :rspec` without being able to load `rspec-expectations`.