Fix the destruction order of windows, contexts, entities and effects

The finalizers of two objects are not guaranteed to run in any specific
order, even if one object refers to the other.

http://msdn.microsoft.com/en-us/library/system.object.finalize.aspx

For example, this means that entities might get disposed after the
context is already disposed. We need to dispose the entities when the
context is disposed to prevent that from happening.
Fix the window viewport not being set
Add an automatically activated vertex array object to graphics contexts

One is required, even though I don't think it's enforced on Windows.
Fix Effect.IsActive not deactivating when set to false
Fix the static Effect.Active always being null
Make effects ignore projection, view and model matrices for now

We don't have cameras or a positioning system that would modify the
matrices yet.
Default the effect "color" parameter to white
Fix the children of an entity not drawing or updating their children