Read request asynchronously using await

We're reading the request from the client asynchronously using a callback.
We can however remove the need for a callback by switching to a stream and
use await when reading.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>