Implement `clicraft sh` more cleanly

Rather than exporting all of clicraft's variables with `set -a`,
construct a file to feed the --init-file option of bash. This has
several advantages:

* The scope of variables and functions is largely the same
* We can set PS1
* We can run commands that affect bash's behavior such as `trap`
Make sh.sh an example script

This is only really useful for debugging clicraft and writing action
scripts, and eval is evil, so put it somewhere where it's not
enabled by default.