[MMU] Introduce Types and Regions

Regions represent sets of bytes. Types describe the meaning of raw
bytes. Currently we support scalars, arrays and basic structures.