mm: Fix slab allocator and rework pte subsystem

I know, not one of my prettiest commits, but hey! One should be allowed
to do such a thing from time to time!

Basically, the slab allocator is now connected to the vm heap management
code.

As for the pte scheme, paging data is now stored in architectural
dependent ways. That means there will be no pretty api, besides what we
have in system.h

This should make context switching way quicker, and more managable.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>