Rewrote box demo to use model-view-controller design pattern.

Still have some tidying up to do, and connection of message handler to controller for mouse input (to rotate and zoom).