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.