Added support for waitForUrl(url, query, timeout)

Tests that needs to wait for an url

* ...with lots of query parameters
* ...that may appear in random order
* ...and conform to approximate or one-of-a-few things
* ...and want to ignore exactly how it gets url encoded

...get Really Hard To Read, so I wrote some support for the

```javascript
waitForUrl('/some/path', { query: "parameters", and: /regexps/ }, timeout)
```

style invocation format, which composes the regexp for you. This made tests manageable, easier to read and understand, and removes the need to know about private details of the proxy host/port. An example:

```coffeescript
        @browser.waitForUrl '/my/page', {
          lat: '41.8781136'
          lng: /-87\.629798[12]\d*/
          address: 'Chicago, IL, USA'
        }
```

I believe this use case (or various different subsets of it) is insanely common.