Adjust exec exit code behaviour

With --halt-on-error exit immediatelly and propogate error code.
Without --halt-on-error continue execution and exit with code 1 in the end (failure exact exit code values irrelevant)

fixes #277
Unit test for "info" command.

Test how it works before refactoring.
Also fix min Test::Output version, as we already used stdout_like
and bump Test::Spec version
Move "info" command code to subroutine which will only format version information
Command 'exec' - log exec failures

Print failed command and system information to STDERR each time exec is failed.
Tries to re-escape command with quotes.
Exec command - actually need shif exit code by 8

also return 255 if spawned command terminated with signal and
exit code is useless

I did not modify do_system_with_exit_code(), I think it's better
if it returns original code