Introduce Tomcat container infrastructure

The initial Tomcat container tests for the existence of a WEB-INF
directory in the application, but does not mutate the application.

Model Tomcat infrastructure on that of OpenJDK, introducing a
tomcat.yml configuration file and lifting TokenizedVersion and
VersionResolver to be general utilities.

Add Tomcat to the configured components

Diagnose malformed Tomcat versions with qualifiers. Tomcat versions
are more restrictive than JRE versions, so if the specified Tomcat
version has a qualifier, fail with a "malformed" error rather than a
"not found" error.

Ensure Tomcat version errors mention Tomcat.

[#49694907]
Merge 49694907- to master

[Completes #49694907]