This patch refactors the UMA places `uma_small _alloc code and removes most UMA machine-dependent code` with a reservation-aware counterpart.
The existing machine-dependent small_alloc code was almost identical across all architectures, except for `powerpc` where using the direct map addresses involved extra steps in some cases.
The MI/MD split was replaced by a default implementation for fetching direct map addresses (`uma_{dmap_to_vm_pagemachine-dependent UMA code is no longer tasked with page allocation, vm_page_to_dmap}`) that can be overridden by architecture-specific code by defining the `UMA_MD_DMAP_HOOK` symbolonly with arranging access to DMAP addresses if need be.
Furthermor`small_alloc` will now use `uma_{dmap_to_vm_page, vm_page_to_dmap}` to fetch DMAP addresses for individual pages.
`UMA_MD_SMALL_ALLOC` was removed and replaced by `UMA_MD_DMAP_HOOK` that can be used to override the default `uma_{dmap_to_vm_page, `UMA_MD_SMALL_ALLOC` was renamed to `UMA_USE_DMAP`.vm_page_to_dmap}` implementation.