Moved some code from Ivory to list/read/write/delete files from locations

I created a `LocationIO` object having the necessary configurations to do IO operations, extracted from the `IvoryLocation` object in Ivory.
Yeah I think that it would be best just to get the `IvoryLocation` to refer to this code once its right