Upgrade to RSpec 3

It's good to keep up to date.  RSpec 3 has also deprecated all the monkey-patching of methods onto `Object` in favour of the new `expect(subject).to eq(something)` style syntax.
fixed and rebased.