x86_64: lazily clean up empty page tables when creating large / huge page mappings.
x86_64: lazily clean up empty page tables when creating large / huge page mappings.

This enables reusing address ranges that held smaller mappings before when
creating mappings with large or huge pages.  This is necessary as we never
clean up page tables and page directories when unmapping regardless of whether
there's valid entries left in them.

Signed-off-by: Simon Gerber <13ba2e9de9ead0ea0b5f47504fb3a80bb9b1ee3b@hp.com>

BarrelfishOS/barrelfish,kishoredbn/barrelfish,BarrelfishOS/barrelfish,8l/barrelfish,kishoredbn/barrelfish,8l/barrelfish,kishoredbn/barrelfish,BarrelfishOS/barrelfish,BarrelfishOS/barrelfish,BarrelfishOS/barrelfish,kishoredbn/barrelfish,BarrelfishOS/barrelfish,8l/barrelfish,8l/barrelfish,BarrelfishOS/barrelfish,BarrelfishOS/barrelfish,8l/barrelfish,8l/barrelfish,BarrelfishOS/barrelfish,kishoredbn/barrelfish,kishoredbn/barrelfish