WIP: Cleanup cukes

This is the work I've done so far for #591.  I'm not done yet but it's at a point where it's worth getting feedback.

My focus here is on making are relish docs really first-class, where they are written to read as documentation first, and to serve as regression tests second.  (I feel like our spec coverage is generally good enough for most things.)

I've been using a staging environment to preview how this renders on relish, making sure it looks good as I go:

https://relishapp.com/rspec-staging/rspec-mocks/docs

There are still some of the old cukes in `features-old`. As I've been going along I've been deleting ones that were either covered by new cukes (in `features`) or that I was sure had spec coverage. The ones that are left are ones we need to look into a bit more.

Still TODO:

- [ ] Add a README.md file for the basics directory. Not sure what to put in there yet given there's already a root README with the same kind of info.
- [x] Add a section for the old `:should` syntax (see #591 for an early idea of what this would be).
- [x] Add an "outside rspec" section (again, see #591)
- [x] Deal with the rest of the `features-old` cukes (migrating them to specs as necessary to provide missing coverage).

Yes, because without that, `expect(dbl).not_to receive(:foo)` doesn't actually do anything.  Test doubles are strict by default and raise errors when any message is received, so we have to switch it to loose by default for `expect(dbl).not_to receive(:foo)` to actually do anything.