Fix crash when the children of an entity are modified while it's drawing or updating

- Make the children read-only
- Add locks around the removal, addition, and access of the children
- Remove the AddChild method for clarity
  - Probably should just allow specifying multiple parents instead or
  something
Fix garbage collection issues and window graphics contexts not 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