Implemented caching of the model.
Implemented interfaces for the graphics package, so other programmers can extend functionality.
Added a listener pattern for zoom and resize in the View object.
Fixed a bug in LineShape where the y2 coordinate was used twice.