Changed the timing of 'exit' is performed within the BAIL_OUT

Changed the timing of 'exit' is performed within the BAIL_OUT.

Execution of BAIL_OUT also be able to test in the stream.

I changed the return value of a function of the 'intercept' of  'Test::Builder::Stream::Tester', but considered to be easier to here is to test the data of various variations.

I made a pull request at a time, handling of error because it was not appropriate, have been reworked again.