This patch makes most of the physical page layer unaware of numa policies and domain specific. This is a stepping stone towards per-domain free locking.
Notably this does not handle free or a few other global phys operations like defrag. It also only partially converts reservations. Really reservations should be consulted prior to calling the allocator and potentially without a free queue lock but this is not yet possible. This does enable callers to override normal allocation policy and specify individual domains.
I make no guarantee about the iterators, I used what was present. Long-term they need to be re-visited.
I am particularly concerned about the change in control flow around allocation failures. While I have tested it did require the allocation functions to be more tolerant of NULL pages when the stats indicate there should be some present. Once the stats are per-domain we can go back to a tighter relationship if necessary.
I also tried to pick a sane argument order for 'domain' not just slapping it in front of all variables. If anyone objects to the order I picked I'm open to suggestions