* Fix rooms v3 url paths for good - with tests
- Add a test rig around `federationapi` to test routing.
- Use `JSONVerifier` over `KeyRing` so we can stub things out more easily.
- Add `test.NopJSONVerifier` which verifies nothing.
- Add `base.BaseMux` which is the original `mux.Router` used to spawn public/internal routers.
- Listen on `base.BaseMux` and not the default serve mux as it cleans paths which we don't want.
- Factor out `ListenAndServe` to `test.ListenAndServe` and add flag for listening on TLS.
* Fix comments
* Linting
* p2p: Use JSServer for comms rather than GoJsConn
This has several benefits:
- it fixes a bug whereby you could not transmit >4k bytes to/from JS/Go land.
- it more clearly exposes the interface point between Go and JS: a single
global function call.
- it presents a nicer API shape than the previous `net.Conn`.
- it doesn't needlessly 'stream' data which is already sitting in-memory.
This is currently only active for local CS API traffic, another PR will
add Federation P2P support.
* Typo