Use a hash table as a store for the address space
The address space is currently stored in "denormalized" arrays, which was good for static address spaces. This construction however severely limits us as we want to move towards a dynamic address space, where a user can add and remove nodes. Now that we have a hash table implementation, let's move to it to store the address space itself.