Fixing waitForCondition to check undefined instead of truthy

Updates to fix waitForCondition that caused failures when the condition included falsy values.

Status: **Opened for visibility**

Reviewers: @kbingman 

## Changes
- Moved protocol instantiation to constructor
- Updated this.client reference to this.client.api to bind the correct object to the callback's scope
- Changed conditional check to use undefined instead of truthy

## How to test-drive this PR
- delete nightwatch-commands from node_modules
- npm install
- run nightwatch tests