Refactor module interface and up our demo game

Given that the Selenium WebDriver uses promises, it doesn't make sense for the
module to provide a callback interface.

While we're at it, refactor the exported interface to be a function that takes a
config object and returns a Q promise. That promise is resolved when the
targeted WebDriver server comes up and is rejected after a configurable number
of retries (5 by default).

The resolved value is a `WebDriver` instance. It provides a reference to
`lib/node/webdriver` via its `webdriver` property.

Finally, update the demo to print the results of the search instead of the
document title.