Update RSpec version
Update RSpec matchers

Updating the RSpec task matchers provided by fudge to its users.  The
matchers now support RSpec 2 and RSpec 3 expectation syntax.

This should allow the fudge matchers to support users that have
upgraded to RSpec 3 (including fudge itself), while continuing to
support those who cannot yet upgrade.

The support for both versions is a little hacky and inelegant,
depending on conditional branches controlled by the RSpec version
string.  We need a plan to deprecate and remove support for RSpec 2.
Convert specs to RSpec 3 syntax

Converting specs to the new RSpec 3 syntax.  This was largely
automated using Transpec.

* Replaced 'obj.should' based tests with 'expect(obj).to' (including
  appropriate changes to negative tests).

* Replaced 'it { should … }' with 'it { is_expected.to … }' (including
  appropriate changes to negative tests).

* Replaced equality operators ('==' with 'eq', '=~' with 'to match',
  etc.).

* Replaced boolean matchers ('be_true' and 'be_false' with 'be_truthy'
  and 'be_falsey', respectively).

* Replaced 'obj.stub' with 'allow(obj).to receive'.

* Replaced 'obj.should_receive' with 'expect(obj).to receive'.

* Replaced all uses of symbols in descriptions with strings
  (e.g. 'describe :a_method do', with 'describe "#a_method" do');
  this use of symbols was never correct, and RSpec 3 now prohibits it.