Service registration, config flow, and adding devices via REST/WebSocket API

Giving REST API or Websocket API the ability to register services and add configuration panels would allow external services to fully integrate with Home Assistant. This is sort of possible now through MQTT based devices, however, the functionality is limited. REST/Websocket API only supports setting state and listening for events.