Give api server operation tracking ability

Pending and recently completed operations now served at: /api/v1beta1/operations/id#

Handling of async operations is now consistent and sensible (ish). We check for admissibility before starting a long wait. I added some ID != "" checks here, but probably more things should be checked.
I reworked the way timeouts are handled in this PR. We don't stop reading the channel if the client times out. We now wait and cache the result for up to 10 minutes. I can change it back to a buffered channel if you're really worried.