Refactored out Diagram and Canvas modules, along with seperate test dir.