Updated data loader

This changes the data loader registry interface, allowing for more logic when auto-choosing data loaders.

While the previous interface only examined the file extension when choosing data loaders, the new interface requires that each data loader provide a callable identifier function. This function returns True if the loader can load the file.