According the the openapi spec, examples for responses and schemas should be
raw objects rather than being json strings. (It's unclear what non-json
examples should look like...).
The swagger UI used to support json strings, but no longer does. In short,
let's turn the json strings into their raw formats.
* Make the purpose of the `auth` key in /register requests explicit, and say
that it should be empty at first.
* Restructure the UA-auth section a bit.
* In the UA-auth section, say that clients should submit no `auth` to start
with, and add 'Stage 0' representing this to the example.
* s/{stage,login} type/authentication type/ in the UA-auth section. Seems
clearer to me.
* Try to distinguish the example responses from the example requests by giving
an HTTP header.
We're licensing hte spec under ASLv2. Add the LICENSE file, and add the
short-form to as much of the source as is practical right now (adding it to
json source is a massive pita).
* Use the terminology 'login type' everywhere instead of mixing up 'stage type'
and 'login type'
* Don't have a separate 'APIs using the User-Interactive Authentication
mechanism' section, because (a) it doesn't make much sense to organise the
APIs this way, and (b) it was a set of lies anyway.
* Move '/account/password' definition into registration.yaml so that register
and password can share a section in the spec; remove duplicate doc for
/password.
* Write some words on using 3pids for /login
As a side effect, I got rid of all of the horrible symlinks and just put
in all of the proper relative paths. Because the horrible symlinks were
horrible.