(TK-3) Add support for multiple servers

Add support for multiple servers to the jetty9 webservice. Previously, a user would define the webserver key in the configuration file as a map of configuration data, which would be used to configure a single Jetty9 server. This syntax is still valid. However, now the user can also define the webserver key as a nested map, where each key is the id of a server and each value is a map of configuration data (of the same form as before). With this information, the Jetty9 service will now initialize, start-up, and shutdown multiple servers if so specified by the user.
If it is at all possible to keep this code inside the `core` namespace, that would be better.  (Probably same with the code below this.)  We try to keep the tk service function definitions as tiny as humanly possible, because they are macros, which makes them harder to test and also reduces the usefulness of the error messages if you get a compilation failure.