I've been using this against real watchman instances for a while now and I've seen uint16_t and uint32_t responses come back from it in practice.

This code might be unnecessarily "clever", though. A malformed header could cause us to index off the end of the `sizes` array. I'll add a check.