Previously, we would purge a hugepage only when it's completely empty. With this change, we can purge even when only partially empty. Although the heuristic here is still fairly primitive, this infrastructure can scale to become more advanced.
We're about to allow hugepage subextent purging; get as much of our metadata handling ready as possible.
We're about to make the functionality here more complicated; testing hpdata directly (rather than relying on user's tests) will make debugging easier.