Enable debug-mode for release build. Reload extensions for the OpenGL 3.3 context
Added a macro for releasing a referenced pointer. Changed some reference counters to REF_COUNTER.

I also updated the name of the mapping enum with a more appropriate name
Copies of the pointers instead of sharing them. Lessen the cache hit slightly
Changed so that you do not have to supply the number of programs we want to compile when building an effect
Removed unneccessary code
You do not need to supply the number of textures bound to a framebuffer anymore.

Lessening the code means lowering the potential of bugs.
Updated comments
Removed FlushAndWait. It's the developers responsibility to wait if they want to
Added safety checks. Allow us to unbind vertex buffers.