implement data channel creation

From https://gitlab.com/Misakey/product-needs/issues/240

Creating a data channel requires to:

  • generate a key pair
  • store the secret key in the secret storage
  • upload the public key to the backend

However most channels will be created during account creation (a.k.a. “sign up”), in which case steps “store the secret key in the secret storage” and “upload the public key to the backend” will be integrated with similar steps already existing during the signup logic.