HoleId.Make
Construct a counter for hole id numbers.
The reason this is wrapped in a generative functor is that functor instantiation allows the next
function to operate on a private integer reference, that can be made inaccessible outside of this module.