reorganized graphics code

the graphics manager is now nested under component/*, and it acts like
any other component manager. The graphics organization has been
completely redesigned: now each GraphicsHandler runs in its own thread
and responds to data sent through channels by the graphics handler. For
no reason (I have no idea why) the framerate exploded: before it would
peak at around ~300fps on my computer. Now it's running ~7000fps. I have
no idea why it is doing this (maybe before when the graphics was on the
main thread, the main thread does things in the background?). Anyways
the graphics manager was redesigned and should work better for future
use.