swap: Assorted fixes and changes
The swapper writes memory out in chunks that it knows fit one "page",
whether that is a bank number of a page number. It also provides a
swap_map function so you can map swap.
Rather than pass the process it passes the correct page number for each
write and no write crosses a bank.
Also allow the use of page2 for memory while swapping. That just requires
the value to be saved.
This changes the swap API so various drivers will need fixes and testing. It
should however take us closer to having the swap interface properly split
from the memory model, and to allowing swap in awkward cases like 16K banking.