Removed old commented-out code which would break graphs if re-un-commented.
Fixed indentation for smart_maps.clj.
Split smart_maps.clj into separate files for each type (Surjection/InvertedSurjection are bundled in the same file). This makes dealing with these files less cumbersome.