ws: Use templates to expand paths in resources

Strings like @@shell@@ are expanded to the full checksum and/or
name of the package in question, including addition of the relevant
host to load from. This allows package to refer to files from other
packages simply.

The shell package needs to be expilictly qualify all of its paths
since it is not loaded into its own frame/document but replaces
the login page.

Resource URLs now all have the same prefix, and automatically
detect whether a checksum or package@host style is in use.

They look like this:

/cockpit/xxxxxchecksumyyyyy/path/to/resource.file
/cockpit/package/path/to/resource.file
/cockpit/package@host/path/to/resource.file

The prefix '/cockpit' was chosen so that when other web apps
do deep embedding of our components, the prefix should not
conflict.
agent: Resolve checksums in the agent instead of web service

This will make life easier for people embedding Cockpit if they
end up handling the resource channels and resource loading
themselves.

Closes #1316