Reorganize the managed and reserved support files.
Make file validation more flexible.

A protected method, ManagedFile#validate, is added. This is set up by default to
stop the entire file contents be loaded into memory if no validation is required
but also provides a point where more complex validation can be added if it is
overridden.
Fix the source of failing validation messages.

If a file in a directory failed validation for any reason the message in the
raised error came from the parent directory, not the file itself.