
* There's no remote locking. This might be a general OSTree issue that
  there's no way to lock the repo.

* The client only knows about the commits at the head of each reference,
  but the server may have the commits we want to send. If it does, then
  no objects need to be sent and the server can simply update the refs
  files.

* The client sends all objects referenced by the commits it's going to
  send, but the server may already have some of those objects. Probably
  a `HAVEOBJECT` message needs to be added so that the client and server
  can negotiate the minimal set of objects to send.

* Once the objects are received on the server, they're moved into the
  object store in the random order they were received in. Maybe they
  need to be ordered to keep the object store consistent. ostree commit
  doesn't seem to bother with this, though.
