This replaces the MIGHTBEDIRTYFLAG with a 'cleangeneration' counter. This allows us to use an atomic to update 'generation' without touching the flag field. If cleangeneration != generation the object might be dirty.
Remove the object flag for TMPFS_DIRTY and re-use this mechanism directly to avoid the vnode type checks. object_page_clean() won't do anything for tmpfs so it will not reset cleangeneration.
With this in place more cases of vm_fault_dirty can work with a read object lock. I'm least certain about my changes to the vm_fault_soft_fast() callsite and vm_fault_dirty().