file_md5() now throws if the file can not be opened
datasource errors are now caughty and returned
prefex datasource errors with a string so they can be distinguished from other errors
now detects datasource errors in new setups and reports on them immediately