Upgrade rspec from 2.12 to 2.14 and update syntax to use expect().to instead of .should

Also changed ==  to eq and =~ to match (or match_array) and from lambda to {}
As you may well know, using 'expect' over 'should' is a recommended practice because of dealing with delegate/proxy objects as detailed in http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax.
As detailed in the blog post "In the future, we plan to change the defaults so that only expect is available unless you explicitly enable should. We may do this as soon as RSpec 3.0, but we want to give users plenty of time to get acquianted with it."
I noticed that expect is now being used in many of the major gems that use rspec. 
I changed the pattern matchers from =~ to match() or match_array() as required for this change and while at it I also took the opportunity to change the == format to eq as recommended in the post.
All tests still pass after this change.

Note: There is currently a lot of deprecation warnings about using stub!  I can fix them but I whould do that in a separate branch and would like to see if this branch will be merged into master first.  Thanks!