Merge branch 'vm'
Return from assert_output instead of exit

The reason is that assert_output is intended to be used in pipelines but the
behavior of exit from within a pipeline is shell-specific.  Some shells like
bash/dash treat it as a return status while other shells like ksh/zsh will in
fact exit a script entirely.  AFAIK there is no one right way dictated by POSIX
for this issue.

Given that you can't get consensus behavior for the exit, it seems appropriate
to return.  Nothing changes in the common case where assert_output is the last
command in the last pipeline of the script.  Additionally it gives
assert_status a concrete reason to exist -- you use assert_output and then
follow with an assert_status to make a multipart test script (or more likely
you just use assert_status following some other check like test or grep).
Meanwhile assert_status does not have the same exit conflict as assert_output;
it simply does not make sense to use it within a pipeline.
Bump the version to 2.0.0-beta

Ok kinda silly because no 1.0 was ever released but the assert_output change is
potentially breaking so bump.
Merge branch 'return_from_assert_output'