Models a file path. These are expected to be used as the constructor
argument to various file classes. The intention is that they easily
convert to other representations such as absolute, canonical, or Url.
Oct 2004: Initial version
Nov 2006: Australian version
Feb 2007: Mutating version
Mar 2007: Folded FileProxy in
Nov 2007: VFS dictates '/' always be used
Feb 2008: Split file system calls into a struct