This changes the default behavior from round-robin between all CPUs to round-robin among all CPUs in the identified domain. This can be overridden by binding the interrupts directly to the CPUs of choice as you would otherwise. I think this code should eventually be pulled up into an MI interface anyway but I didn't want to tackle that as part of this project.
I moved the vm_ndomains definition to make it easier to include. vm_phys.h requires vm_page.h which gets you into a half dozen vm headers just to use one int. So I put it in vm.h for simplicity.