Modified graph, organized imports.

Made the imports a little more sane with __init__.py; tried to make
dependencies more clear. Also, the TreeNode object is now in its own
directory (graph), separated from geo objects. Additionally, I didn't
mention this in the last commit, but BaseWidget now inherits from
TreeNode rather than Shape (Shape used to inherit from TreeNode, but
does not anymore).