Resource channel

This implements resource channels, cockpit modules, and exposes them via HTTP. Nothing has been migrated to use them yet.

See doc/urls.md and doc/modules.md for details on how this is implemented and works.

To test, you can do the following:

```
$ mkdir -p ~/.local/share/cockpit/mymodule
$ echo '{ "description": "My module" }' > ~/.local/share/cockpit/mymodule/manifest.json
```

And then authenticate with cockpit, in a second tab go to: http://localhost/res/localhost/mymodule/manifest.json
This interferes with on_session_control and on_session_recv.  Those handlers need to ignore channels that are not found by cockpit_session_by_channel and return FALSE for them.  (on_session_recv should also properly return TRUE for handled messages.)