Support creating and modifying repos

There are a few TODOs in here which I plan to address, but opening to get feedback on the approach so far.

ping @titanous 
It looks like we've conflated the generation-side `LocalStore` and the one for the client. This is fine for now, but it's very likely that we'll want way less methods for the client interface. With that in mind, does it make sense to refactor this one at all?