Refined the MMU abstraction.

This is an example of a robust way to implement object oriented
programming in C.  From the client's (the user's) perspective,
objects are opaque types that are accessed and manipulated by calling
a defined set of functions or API.  It's like the f* collection of
functions (fopen, fread, ...) for file manipulation except more
powerful.  That's because this implementation supports polymorphism.

See mmu.h