#3 Internal directory structure implemented.

Also modified internal commands (#4) to not run when a command is
already running. I did this on a command-by-command basis so some
commands could be designed to intercept even when another command is
already running.

One known bug remains: the File objects used in the
CmdProcessEnvironment class do not pllay nice when switching to "C:\\".
While the ".." folder can be used to reach this directory, it means
there is no way to switch to other root directories such as D:\ or F:\.
This issue has been raised in #20.