Implement fmtmem and getmem.

I'm positive there are still some bugs in the code.  For example, current
evidence indicates the tag used to identify the start of the pool must start on
an even multiple of four, for reasons that escape me.  If this condition
doesn't hold, the kernel will corrupt memory somehow, and will fail to boot.

However, as long as that condition holds, it boots and operates correctly.  So
far.

Things not yet tested include releasing memory and re-allocating memory.  In
particular, automatic defragmentation support hasn't been ported in yet.