[kernel][vm] first stab at a virtual memory manager

Add kernel/vm code to handle memory management in large page-aligned
regions of virtual space. This is composed via a pmm (physical
memory manager) and vmm (virtual memory manager) and the architecturally
specific code to manage the mmu.

Add ARMv7 paging code.
[lib][heap] have the heap pull pages out of the vm, if present
[platform] add zybo and vexpress-a9 support for the VM
[arch][arm] add routines to invalidate the tlb by address and asid
[dev][cache][pl310] fix build after arm_vtop moved headers
[arch][arm] set the TTBR bits to allow cached page table walks

Remove extraneous page table flushing.
NOTE: for SMP shared configuration, will need to set the shared bit.
[arch][x86] remove the _heap_end symbol from arch code

Add bogus _end_of_ram to the x86|x86-64 linker script to satisfy the
heap's initial setup of it. _heap_end is still manipulated in platform
space to reflect the real memory map.
[kernel][vm] squelch the debug trace spew
[kernel][vm] Require pre-initialized lists for pmm routines, clean up docs in header
Merge remote-tracking branch 'github/vm'

Conflicts:
	platform/vexpress-a9/include/platform/vexpress-a9.h
	platform/zynq/rules.mk
[dev][virtio] patch up to work in the post-vm world

Need to translate virtual to physical in a few places
[arch][arm] quiet the mmu code
[kernel][vm] fix debug code to compile if console disabled