This class contains several constant file locations, which can be used
throughout the rest of the application. It also includes a static factory
method, which can be used to get the default class. Subclasses should be sure
to call the parent's static getter method, so that chaining will work properly
throughout the application. This particular class is agnostic to the application
itself, and so only provides generic locations that may be useful to most Java
applications. The controller for the application should use the most specific
subclass available when starting up the application, though classes themselves
should use as generic a class as possible when requesting file information.
Files are immutable, and likely are cached.