Introduces a "validationCounter" field for all handle types that gets incremented (at least) whenever an OS file descriptor/handle gets invalidated or re-allocated. This way, an old eventcore handle to a reused OS handle can always be distinguished from the current one to avoid interference.
This avoids crashing in case of any handle references left-over in GC allocated memory that gets finalized after module destructors have already been run.