Merge 59478422-code-climate to master

[Completes #59478422]
Introduce Application abstraction

Originally, this work was intended to fix a bug were paths on the
command line of a Play 2.2 application were not relative to the root
of the running Play application (because Play changes the working
directory).  In order to fix this problem, the codebase had to be
changed to use Pathname instead of File, Dir, and Strings.  This
allowed us to more easily calculate relative paths.  In addition, to
uniformly guarantee that $PWD was prepended to all path related to
+JAVA_OPTS+ an Application abstraction was introduced.  It
encapsulates the common behaviors done by components so that they are
handled consistently.  This abstraction isn't required to be used (all
of the context variables still exist) but it should be considered the
way forward.  Eventually, the context variables will be deprecated and
removed in favor of this abstraction.  Finally, the codebase was
cleaned up to meet the following set of rules:

* Minimize the use of Pathname.new
* Minimize the use of File and Dir
* Minimize the use of Shell (in favor of FileUtils)
* Minimize the use of @app_dir

[#59473228][#57290028][#59331620]
Avoid Groovy container detecting when there are .class files

Rather than code exceptions for specific files, such as
logback.groovy, ensure the Groovy container does not detect when there
are one or more .class files present.

[#61282032]
Avoid Spring Boot CLI container detecting shebang files with classes

[#61656448]
Add MariaDB JDBC framework

The MariaDB JDBC driver is used instead of the MySQL JDBC
driver since its license terms are more favourable.

[#52325391]