Gets all of these types and interfaces out of the global namespace.
Uses the same type aliases we use for virtual addresses, and converts one lingering usage of std::array<uint64_t, 2> to u128 for consistency.