RSpec 3 and PhantomJS

Upgrade RSpec to 3 with new expectation syntax. Replace Selenium with Poltergeist (PhantomJS) for headless browser testing (using Selenium is still optional).
Old `should` syntax has slipped in here :)