implement a julia specific debug mode with `--debug`
This PR adds a new flag to control when a "julia specific" debug mode is
active. When the debug mode is active the following happens:
- The `@assert` macro is active
- The `isdebug` function returns `true`.
Currently, the `--debug` has three options:
- `"yes"`: debug mode is active in scripts and packages
- `"script": debug mode is active in scripts
- `"no": debug is not active anywhere
The debug mode is a "compile time option" meaning that it will recompile
packages if it changes.