Move the tlb flushing into free_pgtables. The conversion of the lockstaken for reverse map scanning would require taking sleeping locksin free_pgtables(). Moving the tlb flushing into free_pgtables allowssleeping in parts of free_pgtables().

This means that we do a tlb_finish_mmu() before freeing the page tables.Strictly speaking there may not be the need to do another tlb flush afterfreeing the tables. But its the only way to free a series of page tablepages from the tlb list. And we do not want to call into the page allocatorfor performance reasons. Aim9 numbers look okay after this patch.