This will likely require significant rework but it will do for now. A
considerations worth thinking about:
- What happends when the WindowDriver destroys a window, what happens to
the corresponding surface?
Hopefully the last time I change my mind on what I want these to be
called. Reason behind this change is to minimize scope of a single
module. The WindowDriver should really only handle stuff related to
windows. If we need OS level functionality (e.g. get_os_name), that
should be the responsibility of the OS driver (or whatever that ends
being called). Remember, composition over inheritance.