(QA-723) add preserve hosts on failure option to beaker

- still support fast/slow fail modes, in slow mode will continue to
  attempt to run tests + test suits
- create preserve_hosts modes:
  always = keep 'em around no matter what
  onfail = only preserve if there was a failure during testing
  never  = kill 'em no matter what
- added spec test coverage for these modes