Switched from OOP filesys to lightweight version

Rather than implementing various filesys interactions by wrapping paths in
objects that describe their types, using a new approach more similar to the os
and os.path modules, in which filesystem elements are represented solely by
their paths.