fix: use non-contiguous allocations wherever possible (#364)
This change brings back non-contiguous physical allocations in places where it makes sense to have them. This helps to make better use of memory especially as we approach the maxmimum system memory.
authored by