Refactored MemoryBufferPool into ObjectPool and MemoryPool classes.
Made sure to respect disposed instances of ObjectPool.
Further optimize use of OVERLAPPEDEX structs by reusing them when possible.