refactor(kmem): cleanup continued (#633)
* refactor: overhaul address space bootstrapping code
* refactor(kmem): do not tie `PhysMap` to `HardwareAddressSpace`.
Previously every `HardwareAddressSpace` had an associated `PhysMap` that was allocated and mapped during bootstrapping. This however turns out to be inflexible
and not quite correct:
- We don't actually want every address space to have its own physmap. In practice there would only be one physmap anyways (that might be globally mapped) but its a bit awkward
to rely on this unspoken and uncodified assumption.
- Doing this we would potentially be unable to modify userspace address spaces from the root kernel one.
authored by