(QENG-758) add ability to select a group a beaker hosts based upon...

...a set of properties

- a shortcut means of selecting a sub group of hosts to run commands on
(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.
(QENG-844) move beaker smoketests over to ec2

- add 'lsb-release' to required packages for debian boxes, it is not in
  our default ami's
Merge pull request #321 from zaphod42/issue/master/race-in-stopping-master

(QENG-840) Replace puppet.conf after stopping master
(QENG-968) automate cleanup of zombie ec2 beaker instances...

... generated by jenkins smoketests

- 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
Merge pull request #367 from anodelman/move-to-ec2

(QENG-844) move beaker smoketests over to ec2
Merge pull request #368 from anodelman/ec2-killer

(QENG-968) automate cleanup of zombie ec2 beaker instances generated by jenkins smoketests
(gh-333) Typo in method name ('has' instead of 'hash') in ...

... options_hash.rb (line 101)

- yup, fix the typo
(QENG-819) stderr collected for each testcase is incorrect...

...(as seen in beaker xml output)

- keep track of the last result generated through the ssh connection
- add the last stderr to the junit xml output
- clear the collected last result before each test case
(QENG-5156) Provide Important Env Vars Set in Debug Output

This provides the Environment Variables that are pertinent to running
Beaker as an error message after a failed run or as a debug message
on a successful run in the debug log level.
Improve documentation and readability of environment parsing improvements
Ensure IS_PE only respects different values

Previously if we set the IS_PE or BEAKER_IS_PE environment variable at
all we would automatically make the run a PE run. This caused
non-obvious behavior for users that set IS_PE=false.

This changes the searching of the environment to only set the :type
option if [BEAKER_]IS_PE=yes|true.

Signed-off-by: Justin Stoller <justin@puppetlabs.com>
Clean up and document reproduction info methods in Beaker::CLI
Merge pull request #248 from justinstoller/feature/master/QENG-515-debug_env_vars

(QENG-515) Provide Important Env Vars Set in Debug Output
Merge pull request #296 from anodelman/confine-agents

(QENG-758) add ability to select a group a beaker hosts based upon...
Merge pull request #369 from anodelman/options-hash

(gh-333) Typo in method name ('has' instead of 'hash') in ...
(QENG-941) create contributor documentation for beaker

- create CONTRIBUTING.md
- covers steps necessary before PRs will be merged into Beaker
Merge pull request #365 from anodelman/maint

(QENG-941) create contributor documentation for beaker