Memory optimizations - do not merge yet

This PR reduces the amount of memory allocations during OpenTK startup by roughly 10-15%, depending on the platform. Additional improvements pending.