Use adaptive buffers everywhere
The Compute runtime has a concept called "adaptive buffers." The idea is that when you pass a buffer into a hostcall that's too small for the result, the buflen error status is returned, along with the size the buffer would have needed to be to fit the data. The SDK then allocates an appropriately sized buffer and calls the hostcall again.
Here's an example from the device detection hostcall: https://github.com/fastly/compute-sdk-go/blob/579dadcdcd295da646e6836c5d922eaaa26b89b6/internal/abi/fastly/hostcalls_guest.go#L3414-L3435
We use this pattern for all new development, but much of the older parts of the SDK don't support adaptive buffers. This pushes the burden onto end users to use the limits API to empirically increase the size of the default buffers to avoid errors. See #7 for the introduction of the limits API for the impetus for this.
We should audit and fix these calls to use adaptive buffers, which will allow SDK users to automatically get data up to the largest size permitted by our platform without additional work. Then the limits API could be deprecated.