2.3.1 Release

External dependencies (like pomegranate, spring framework, etc.) were
causing issues with builds because they have heavy Java dependencies
themselves and are using quite old versions of these transitive deps.

- Transition to using the tailrecursion.boot.loader facilities for
  resolving dependencies in a separate classloader introduced in boot
  version 1.0.3. This required changes to tr.boot.core and tr.boot.deps
  namespaces.

- Transition to using the separate classloader for doing AntPathMatcher
  glob matching to eliminate the spring framework dependency.

- Move the digest dependency into this project and re-namespace it.

- Compatibility with older versions of tr.boot.loader is maintained but
  deprecated.

- Fix issue where dependencies were being added to boot environment
  :dependencies key even when pomegranate failed to add them to the
  classpath. Now the dependencies are added to the classpath before they
  are added to the boot environment. This mostly only affects the use of
  set-env! in the REPL, as the exception from pomegranate would otherwise
  cause the program to abort.