Custom assertions

Start a module for custom assertions
The current implementation of `shell` asserts the exit status, and I think that's the main convenience it provides:

    # before
    assert_equal "expected", `#{cmd}`
    assert_equal 0, $?.exitstatus

    # after
    assert_equal "expected", shell(cmd)

I'd rather not return the exit status from shell because it makes the common use more cumbersome (`shell(cmd)` becomes `shell(cmd)[0]`).   Since `shell` always asserts the exit status is as expected before it returns, we shouldn't need to return it.  It's still available in `$?.exitstatus` if it is needed for some reason.