(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)
I would probably write this more like:

    if not default.empty?
      if default.length > 1
        parser_error "Only one host may have the role 'default', default roles assigned to #{default}"
      end
      #we already have a default set, do nothing
    else
	  if not master.empty? and master.length == 1
        default_host_name = master[0]
      elsif hosts.length == 1
        default_host_name = only[0]
      end
	  if default_host_name
        hosts[default_host_name][:roles] << 'default'
	  end
    end

This makes it much more clear that we are only adding the 'default'
role to a node if we did not find one already set.