* Fix interactive registration failing because of being confused with AS registration
* Fix AS registration tests
* Move AS registration handling to dedicated function and split the switch/case to avoid unnecessary condition
* Ignore handleRegistrationFlow() for gocyclo and add some doc/comments on the code
* Check UserID instead of username from AS's. Tests.
* add tests to validateApplicationService
* Use some literals, organize URLs & checks
* Fix error messages and incorrect test
* Refactor registration to align with the spec
* We now keep track of sessions and their completed registration stages.
* We only complete registration if the client has completed a full flow.
* New Derived section in config for data derived from config options.
* New config options for captcha.
* Send params back to client for each registration stage.
Signed-off-by: Andrew Morgan (https://amorgan.xyz) <andrew@amorgan.xyz>