Clean base

This commit does stuff like pull in some of ross's changes which I accidontally forked from.
It also pulls the Xlib requirements out of view from classes outside of Graphics.
This is in prep for support multiple graphic environments. Aren't quite there yet, but it's at least most of the way there.
Also forward decs are good for speeding up build times.