Moved the Store interface to a real key/value store

Ok, I think I can see how the behaviour is the same. But DirPath shouldn't be worrying about URIs, I think there are a couple of issues around here, specifically DirPath shouldn't know about URIs and the S3 parsing isn't fine grain enough - it is conflating the hostname with the key which makes this less useful than it should be. However, I don't think these should be show stoppers, and I think it is far more important to get these changes merged than to get held up on these things that can be looked at separately. I will raise an issue to remember to look at them later - but for now lets leave it like this.