Reorganized the canvas to be a separate module so you can ask for the context from any actor. Also added the ability for the viewport to detect resizing and resize the canvas as necessary.