This is somewhat inelegant, and will please nobody, but I think it's more
important that we specify the current state of the onion than worry about what
would have been nice, and introduce incompatibilities while we do so.
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).
Now that we don't expect there to be duplication betwen the 'timeline' and
'state' results, there's no point in having the state map. (That does mean the
events themselves need event_id fields though).
Also:
- move the contents of the 'unsigned' dictionary into the events themselves
- replace the state list with two layers of dictionary keyed on type and
state_key
- rename the children of the 'rooms' dict from "joined/invited/archived" to
"join/invite/leave" to match the membership states