Get the sub name from the name of the file
Support help for internal commands

Help is written using the same conventions as for scripts, but within
the docstring of the function that implements the internal command
Fixed lots of problems reported by pylint
Replace eval mode with sh-check mode

Eval mode had a flaw that made it unusable: It relied on the original
command being output correctly for the shell to eval it. This is a hard
problem, especially when dealing with quoting stuff.

So instead I've introduced the sh-check mode, which will trigger a fast
run of sub and will simply return 0 is the command is an sh command and
1 otherwise, so the shell wrapper can then run the command again without
the flag wrapped by eval or not.
Adjust prepare script to work with new structure

Make sure the prepare script does not change the contents of the main
sub script