Revise the ASID allocation sheme to avoid a hang when running out of free
ASIDs. This should only happen on systems with 8-bit ASIDs, which are
currently unsupported in OpenBSD.
The new scheme uses "generations". Whenever we run out of ASIDs we bump
the generation and flush the complete TLB. The pmaps of processes that
are currently on the CPU are carried over into the new generation. This
implementation relies on the scheduler lock to make sure this happens
without any (known) races.
ok patrick@, mpi@