/login, /register: Add device_id and initial_device_display_name
/login, /register: Add device_id and initial_device_display_name

To help test the forthcoming device_id support for /login and /register, add
the device_id and initial_device_display_name parameters to those calls. Allow
the app to specify the default device displayname when creating the client (as
well as the device_id).

Also, don't try initialising the Olm layer unless a userId is
provided. Currently this isn't a problem because react-sdk doesn't provide a
sessionStore when it doesn't provide a userId, but that is a bad thing to rely
on (and I am going to break it with a react-sdk PR).

matrix-org/matrix-js-sdk,matrix-org/matrix-js-sdk,williamboman/matrix-js-sdk,williamboman/matrix-js-sdk,matrix-org/matrix-js-sdk,williamboman/matrix-js-sdk,matrix-org/matrix-js-sdk,krombel/matrix-js-sdk,krombel/matrix-js-sdk,krombel/matrix-js-sdk