think() is for messages in verbose modes, if app wants to be verbose it
should not look like the messages don't matter.
warn() is for warnings: either you should totally know about them or
they should not be warnings.
Same holds for mkusage() which basically means the app died because it
could not understand what you wanted it to do.
Remove '()' decoration from $caller internal variable. Decorations are
matter of presentations; at this level the brackets are only confusing.
To decide whether a caller is main script or direct descendant thereof,
called main(), use negative index of the stack array FUNCNAME (0 in first
case, 1 in the second). To signal that to the `_pretty_*` plug-ins,
use a dedicated boolean.
This also accounts for cases when a main() function is declared somewhere
else than in the main binary. Older code would simply assume (based
on the name being "main") that it's called from main binary and rewrite
$caller, possibly causing confusion. Now, only the originally intended
special cases behave specially.