Add ptor.waitForAny to wait on multiple possible outcomes.

Many times there can be more than one possible result for `ptor.wait`. If I'm performing a search through a form for example, depending on the presence or absence of search results, what I am able to test on my page is very different:

 * Presence of one or more search results
 * Presence of a message letting me know there is no results

If this is not exactly the function under test but only one step in the test process, it is only important to know that this async loading of information is now finished. This allows to wait on multiple possible outcome:

```js
ptor.waitForAny(
      function(){
        return element(by.css('.success')).isDisplayed();
      },
      function(){
        return element(by.css('.failure')).isDisplayed();
      }
);
```
Right now there's a clear separation of q promises being used in the runner and webdriver promises here. I'd like to keep that.