And rewrite all existing commands to read from a binary instead.
The transition to the new data model is *not* complete because a bunch
of data is still hidden in the "Disassembly" inside the binary's virtual
space instead of being managed by the binary itself. Removing these is
the next step.
Projects are now created, saved, reloaded. Next step is to provide the
pm command to migrate old vspaces to them, and then start getting rid of
the old abstractions.
This prepares the introduction of a new program model different enough
from the original that I'd rather build it on the side than
progressively update the current one.
We look for constants in call instruction parameters, but this only
works for jsr because the register argument in [jmp @rn] is not known to
be a constant yet (some static analysis required).
* Change option syntax to <name>=<value>, with mandatory "=". This is
still not great, but manageable.
* Remove the Session::require_vspace() function, whose named overload
was misused (to check for the existence of a named space), and the
associated exceptions. Explicit error flow is better error flow.
* Change the autocompletion system to generate all options in a vector
of strings and then iterate, rather than using generators.
* Add completion for symbols.