Merge pull request #519 from rspec/lifecycle-space-fixups

Lifecycle/space fixups
Fix indentation.
Add spec for `have_received` lifecycle issue.
Fix null_object double visibility bug.

The error being raised had the word "private" in
it only because the method itself had that in its
name, but this did not indicate it was raising
the normal "private method called" error raised
by ruby.
Allow null object verified doubles to receive private methods using `send`.

This mirrors the behavior of the real object.
Fix 1.8.7.

I'm not sure why, but aliasing `__send__` to `send`
on 1.8.7 doesn't work correctly. Defining the alias
manually does, for some reason.

While we're at it, it makes more sense to define
`__send__` as primary and `send` as secondary,
as it's more likely users will stub `send`
(e.g. for an `email` object).
Add specs to ensure `send` can be stubbed.
Work around JRuby bug.
Merge pull request #524 from rspec/fix-null-object-visibility

Fix null object visibility
Delete unneeded script.

[ci skip]
Update test-all script so it builds against core and expectations.

If we break those gems we want to be notified about it.
Update .travis.yml.

- Build against ruby-head and jruby-head but allow failures.
- We don't need the before_install stuff anymore.
Add travis_retry to bundle install.
Revamp travis build.

- Only run the one-by-one specs and the builds for other
  gems on MRI. JRuby and RBX are too slow and flakey.
- Before `bundle install`, clone all repos to sibling dirs.
  This makes the later bundle installs for the other repos
  *much* faster since they don't have to re-clone the rspec
  repos and can instead share the same checkouts.
- Using a common bundle directory to minimize the number of
  gems that have to be re-installed.
- Reinstate using bin/cucumber for faster cuke runs.
  Running w/o bundler removes the "bundler tax" of having
  bundle to runtime checks everytime we shell out to `rspec`.
- Reorganize build scripts for easier maintenance.
- Make certain parts of the build idempotent, so that, for
  example, the main repo isn't re-cloned or the specs re-run.
  This will allow us to re-use these scripts in all repos
  w/o changing them. Otherwise each would have to be a bit
  different and skip the extra clone and run of their own
  repo and specs.
We're still having cucumber problems with bin/cucumber :(.
Use `bundle exec cucumber` only on 1.9.2.

It's the only ruby that gets a system stack error
from the `bin/cucumber` approach. `bin/cucumber`
is faster as it avoids loading bundler at runtime.
Merge pull request #530 from rspec/multi-build

Update test-all script so it builds against core and expectations.
Updated travis build scripts (from rspec-dev)
Better error message when calling private method on a verifying double.

Fixes #531.
Merge pull request #537 from rspec/issue-531

Better error message when calling private method on a verifying double.