SRP

A few extractions of behaviors to smaller domain specific objects.

I pulled all the "Path" behaviors and most of the FileSystem related behaviors out of System and put them in their own classes.

Also wrote some tests.