Add the first implementation to represent an address space (through the
`AddressSpace` struct), that can be used by different objects which have
their own inner memory map.
The implementation use an AVLTree (right now it's just an ordinary BST,
as rebalancing has not been implemented).