Add GBytes variants for GSocket receive methods
The current buffer API is pretty much C-specific, and cannot be adequately described in a way that is friendly to introspection and language bindings: the passed buffer is allocated by the caller, but the written size of the buffer is in the return value.
Using GBytes, we get a better API at the cost of an additional allocation.