Refactored Deferred loading

Now uses custom half-implementation DeferredFile to greatly reduce code
volume, and increase maintainability. Only the load() function needs to
be written.

DeferredFile:
-takes filename as a parameter and uses it to generate getDescription(),
and simplify derived load() procedures.

Waypoint:
-removed console spam