Pretty much correct, except that instead of passing `:test_return => true` to `#apply_manifest` it is intended that someone would just call `#test_manifest`; `#apply_manifest` has essentially been renamed to `#test_manifest`.

"Why has it been renamed," you ask. You know how `:acceptable_return_codes` in beaker raises test failures if Puppet returns anything but 0? Because applying a manifest is different than testing the application of a manifest, that behavior is now done by `#test_manifest` and `#test_manifest_on` and the functionality of `#apply_manifest` and `#apply_manifest_on` has been loosened to not enforce any return codes. @justinstoller can make comments about this too.

As for the `:catch_failures` option, it had a bug that prevented it from working as intended, so that is fixed. I also added `:expect_failures` as it's counterpart to verify that manifest applications that are expected to fail do.