Fix garbage collection issues and window graphics contexts not being created until opened

- Hopefully fix garbage collection not working at all
  - Make Void.Entity, Void.Windows and Void.Graphics.Context IDisposable
  - Use System.WeakReference for the static list "All" in Void.Windows
  and Void.Entity
- Fix window graphics contexts not being created until they are opened
  - The window and the context are now created in the constructor
  instead of after the Visible property is set to true