(QENG-840) Replace puppet.conf after stopping master

A webrick master watches the puppet.conf file and will try to reload and
reapply the settings catalog when it changes. The with_puppet_running_on
method gets into a race with this behavior, plus bug PUP-2834, because
it puts the backed up puppet.conf back into place *before* trying to
shut down the master process. This caused the master to periodically
read the new configuration, fail in applying it, crash, and then beaker
would try to kill the process. The process was already dead and the kill
command ends up failing. This then causes the test to fail.

This changes it so that for webrick masters, the backed up file isn't
moved back into place until *after* the master has been shut down. Since
rack masters don't ever try to reread the config file, this doesn't
affect them. Also, in the rack case, the file needs to be moved into
place *before* the master is stopped since it is actually fully
restarted.
(maint) Remove unneeded modifications to File

These modifications to the FakeFS::File class do not appear to be
needed. When they are removed all of the tests continue to work as
before.
(maint) Create default for master-start-curl-retries

The master-start-curl-retries option did not have a default before.
Without the default it was possible to end up with a comparison against
null when retrying a check with curl (for checking that services are
running). This adds a default of 0 (no retries) to the presets.
Merge pull request #321 from zaphod42/issue/master/race-in-stopping-master

(QENG-840) Replace puppet.conf after stopping master
(QENG-844) move beaker smoketests over to ec2 (kill ec2 zombies)

- add support to aws_sdk hypervisor to kill zombies that have alive
  longer than a given amount of hours
- make it possible to run beaker without a hosts_file, thus making it a
  script executor