memory.lua: Allocate by slicing up "chunks".

DMA memory is now sliced out from a "chunk" of available memory.

Chunks can either be supplied by physical address with:
  memory.install(address, size)
or else they are automatically allocated by mmap()ing HugeTLB pages as needed.

So if you want to do the "old style" way of giving DMA memory to
snabbswitch then you can do this:

  Boot Linux with memmap=16M$0x10000000
  Extend e.g. selftest.lua with: memory.install(0x10000000, 16*1024*1024)

and then the first 16MB of allocations will be sliced out of this
memory without allocating a huge page.

This hopefully helps @pkazmier with issue #34. See also issue #39.
memory.lua: Fix in memory.install().
Merge remote-tracking branch 'upstream/master' into development
Register memory that was allocated from kernel at boot time.

Once Luke gets HugeTBL pages working reliably for DMA, we can
eliminate this hack.