Move to PCL Storage

This PR switches Datastore to use PCL Storage's async I/O abstraction. Everything now becomes Async™ and crazy town. I'm worried that this will perform worse and be way harder to debug, and probably isn't a good idea, but I wanted to put it up regardless to get thoughts.

## TODO:

- [ ] Actually get this building
- [ ] Get the tests running + passing on both iOS and Desktop
 -[ ] Check the perf hit