(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...
(QENG-713) add 'puppet_tmpdir' method

Add a 'puppet_tmpdir' method in Unix::File that creates temporary
directories which are owned by the puppet user.
add test case and docs for 'puppet_tmpdir' method
use DSL to access --configprint value
Adds create_tmpdir_on DSL method.

Signed-off-by: Wayne <wayne@puppetlabs.com>
Update to create_tmpdir_for_user, add spectests

This commit as spec tests which include several additions to spec/mocks.rb to
support the use of `host.tmpdir` and `execute` when using FakeHost. In support
of these is the FakeCommand which works around the fact that these FakeHost
commands don't have access to the same objects as the context in which
FakeHost.exec is used.

Also removes test for Unix::Host.puppet_tmpdir

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