Ported SlamAllocator from pedigree.

This is still somewhat a work in progress (and depends on two rust-core PRs), but comments are welcome.