Add empty Effect class
Add basic functionality to Effects

- Doesn't work properly yet because there is no active context
- Manages the shader objects and the shader program object
Fix effects not getting garbage collected

Make the static list All hold weak references to the effects instead.
Fix effects not compiling

- Activate the dummy context before trying to do anything
- Replace glPosition with gl_Position in the default vertex shader code
Implement IDisposable in the Effect class