Split virtual-mem-related code into its own files.

The biggest motivation for this is that there have been numerous times where I wanted to see just Task-related debugging info, but because this file is shared with vm code, I have to see all the vm spew too (which is quite noisy).  But also, Task and vm are somewhat conceptually distinct, so perhaps splitting the files might make the code a bit easier to understand.

@rocallahan what do you think?