Revert changes previously made on this branch on ResourceInterface and File/Directory resource.

If client classes collecting resources (like RouteCollection or MessageCatalogue)
accept arbitrary objects and not only ResourceInterface instances, then we can leave
ResourceInterface, FileResource and DirectoryResource alone. Also, we don't need the
SelfValidatingResourceInterface but can instead provide a ResourceInterfaceValidator
that is able to validate all ResourceInterface instances.