Add custom exceptions script.
Update test_constructor_with_invalid_file_types()

Convert to pytest syntax and catch UnsupportedFileType instead of the more generic NotImplementedError
Update __init__()

Improve IOError handling to look for error 13.
Add new custom exceptions: FileDoesNotExist & PermissionDeniedOnFile
Separate two unit tests and use new exceptions.

Separate test_constructor_with_inaccessible_or_nonexistent_files into:
    1. test_constructor_with_inaccessible_file()
    2. test_constructor_with_nonexistent_file()

And use new exceptions: FileDoesNotExist, PermissionDeniedOnFile
Eliminate unit test which seems to test the standard library.