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.
If you can, would be worth having some of these be properties, especially things that are meant to be reading/writing "utf8". We have hit a couple of encoding bugs hidden away recently.