Fix 1.9.3/recursion issues with #spy

* Add #respond_to? to the list of methods which are not spied
* Fix displaying a "double injection exists" error (thrown in
  RecordedCalls) so that it does not spawn infinite recursion. The
  recursion happens because #inspect and #to_s are being spied, so if
  one of these is called while a call is recorded (which would happen
  when this error is thrown), then it will cause itself to be recorded,
  which causes itself to be recorded, ad infinitum.
Add remaining tests for #spy
Sort spec/support files before requiring them

This is to ensure that constants which are referenced in support files
have already been loaded.
Fix using RSpec's RR adapter to not override our RSpec adapter

It looks like requiring 'rr' and then using `mock_with :rr` made it so
that the have_received matcher we supply was no longer available.
This is because when our adapter loads, it tells RSpec to `mock_with`
our own module, which really tells RSpec to mix in our module into
describe blocks, when they are created. Saying `mock_with :rr` replaces
our module with RSpec's own module, which does not have_received, so
this method is no longer available in describe blocks.
Update changelog [ci skip]
Fix tests to not require rr until after RSpec
Fail fast when running all tests
Sync output to get Travis to behave
Add rake tasks for running unit and functional tests