factor out PT page allocation/freeing
As follow-on work to e4b8deb222278b2a, move page table page
allocation and freeing into their own functions. Use these
functions to provide separate kernel vs. user page table page
accounting, and to wrap common tasks such as management of
zero-filled page state.
Requested by: markj, kib
Reviewed by: kib
(cherry picked from commit c2460d7cfe9fab30459ce495f08544a237a5baa3)