Set the parent of QNetworkReply in registerReply
instead of doing it all over the place.
This also fixes a memory leak since the QNetworkReply was
not parented with one of the EnginioReply constructors.
De-obfuscate the implementation of remove

It ended up being error-prone because of the ifdef.
Generate a X-Request-Id header for each request
This is needed to track the REST API requests end-to-end
and match notifications to API requests.
Make the request id header accessible on EnginioReply
to be able to use it in EnginioModel.
Do not expose the key generation function on EnginioBackendConnection
since it is not useful anywhere else but the WebSocket handshake.