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 
I took these from the reference implementation (see the code comments [here](https://github.com/theupdateframework/tuf/tree/develop/tuf#create-timestamp-snapshot-targets)). Do you think these should always be supplied by the user? I think it makes sense to provide sane defaults.