mm: vm: range_alloc: Add alloc buffer

In the old situation, allocation of range descriptors was a potential
problem when the allocator ran out of memory because:

1) The VM descriptor requires the object allocator for range desriptors
2) When out of memory, the allocator requires a new VM range
3) The allocator could provide a descriptor for the required range.

In order to solve this, a buffer has now been created to stash some
range descriptors.

Each allocator is supposed to call the update function, in order to make
sure the range descriptors are topped up once the descriptors in buffer
dip below the maximum allowed.

This should make it possible to always have a range descriptor
available, up until the point where memory truly runs out.

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