add idempotent deps

I became tired of endless `dynamic` + `met` + `assertz` stuff all over my code, so... this.

Bonus: documented this and also the meta deps in the README!
I put out a basic marelle release so that people could work from an unchanging base, whilst we improve it. A side effect: the default bootstrap is no longer to `~/.local/marelle`, it's to `/usr/local/share/marelle`. Perhaps we can detect the marelle directory here before proceeeding. Something like:

```prolog
(isdir('~/.local/marelle') ->
    sh('cd ~/.local/marelle && git pull')
;
    writeln_stderr('marelle must be installed at ~/.local/marelle to use selfupdate'),
    fail
)