* Re-use code provided by `-e` as function exit status.
* Default to FFOO_EXITS_USAGE, i.e. 2.
* Add -k as shorthand for `-e 0`.
* Update and enhance docstring.
`echos()` is implemented using `printf` with format argument containing
one `%s` and newline. `printf` behavior is to repeat the format for
any excessive arguments, so that we may end up with multiple lines:
> $ printf -- "%s\n" 1
> 1
> $ printf -- "%s\n" 1 2
> 1
> 2
Since use of `"$@"` is often recommended as default, frontend call like
`think "args: $@"` are to be expected. This way arguments are split
automatically, however, traditional `echo` would normally join them back
to one line. It's more intuitive to have the same behavior by default.
Using `"$*"` in __echo_args results in joining all parameters back to
single line, resulting in printf calls similar to this:
> $ printf -- "%s\n" "1"
> 1
> $ printf -- "%s\n" "1 2"
> 1 2
Note that user can still use `-l` argument to switch to __echo_lines
should they really want to have each argument printed on a separate line
(but that's a different story).
Generalize color codes per function and leave them empty if a "real
pipe" (i.e. pipe or file) is detected[1] on STDERR (2).
[1]: http://stackoverflow.com/questions/911168/how-to-detect-if-my-shell-script-is-running-through-a-pipe
Now testname.oracle file can specify expected exit status file
as well, or different path for stdout/stderr oracles (default is
testname.oracle.stdout and testname.oracle.stderr)
This effectively allows for testing scenarios where exit status or error
output can be tested as well.