(QENG-597) 'master' DSL helper can return a non-master node...

...when actual master is confined away

- change around the logic so that the default node is defined at options
  parsing, not during test runtime
- determine the default node by it either being
  1.  the node with the role defined  as 'default'
  2.  the master node
  3.  the only node
  Then add the role 'default' to that node, if necessary
- differentiate between master and default, no longer allow the default
  to be used as a master if the master is undefined (keep roles clear,
  the master should only be the node defined as master)
Merge pull request #224 from anodelman/fix-default

(QENG-597) 'master' DSL helper can return a non-master node...
Bugfix in host.exec.

Honor the :silent option.

Signed-off-by: Wayne <wayne@puppetlabs.com>
Bugfix in logger.

Many logging functions seem to try to pass positional parameters in to
optionally_color but mistakenly flattened the list into a single argument. This
made it impossible to choose whether or not to add a newline.

Signed-off-by: Wayne <wayne@puppetlabs.com>
Make retry_command output easier on the eyes.

Silent all the "on" commands by passing silent => true to the underlying
host.exec in the options map. Instead, handle console/logfile output for
retry_command manually. Should significantly reduce logfile size for
applications that make extensive use of retry_command, not to mention making
stdout more readable.

Signed-off-by: Wayne <wayne@puppetlabs.com>
Remove call to logger.notify with bogus arity.

Seems like "args" probably becomes an empty array which made this method call
okay previously. However, if there are no arguments in "*args" then no args get
passed down to optionally_color, thus the arity of the original "*args" is
preserved.

Signed-off-by: Wayne <wayne@puppetlabs.com>