Add parallelLimit to knife queryAndRun

Add ability to limit the number of concurrent tasks run against the
servers knife returns.
Support functions as parallelLimit for knife.queryAndRun

Support functions as the value for parallelLimit so users can limit the
number of tasks run in parallel based on the number of servers found.
Implement suggestions from PR

- Rename parallelLimit to parallelLimitFunc and expect value to always
  be a function.
- Do not return whatever async.forEachLimit returns, we don't need it.
Abort queryAndRun on failure when using parallelLimitFunc

Need to be able to abort queryAndRun when a failure occurs while
remaining backwards compatible with anything currently using
queryAndRun. This commit enables this ability only when the
parallelLimitFunc option is used.

Because of the version of the async library being used, queryAndRun must
be, and can only be aborted when parallelLimitFunc is enabled.
implement fixes suggested in PR
Merge pull request #54 from racker/dominic/queryAndRun_parallelLimit

Add parallelLimit to knife.queryAndRun