Upgrade to RSpec 3

Inspired by @agilecreativity's pull request #37, the major changes are as follows:

* No longer rely on monkey patching by using RSpec.describe
* Use the new expect syntax for assertions
* Use the new expect syntax for mocking and stubbing
Pull request for that change in #40