Add `test_manifest_on` and `test_manifest`

The old methods `apply_manifest_on` and `apply_manifest` enforced return codes and would raise errors under certain conditions instead of returning the stdout/stderr/exit_code for the testing library (rspec, etc) to validate. It also required explicit return codes for testing against failures.

This pull request:
- changes the name of `apply_manifest_on` and `apply_manifest` methods to `test_manifest_on` and `apply_manifest` to reflect their behavior
- bugfixes the `:catch_failures` options argument and adds an `:expect_failures` argument.
- adds `apply_manifest_on` and `apply_manifest` the same as before, but without the return code enforcement

This change is backwards incompatible