Factor out duplicated code

Create a new download utility method to contain the previously
duplicated code.

[#54205148]
Merge 54205148-code_climate to master

[#54205148]
Narrow Groovy container detection criteria

No longer test for either the existence of a single .groovy file or
for a file named main.groovy or Main.groovy. The remaining detection
criteria are sufficient.

Tidy up the tests on the basis of the new detection criteria.

[#54271200]
Merge 54271200-narrow-groovy-detection-criteria to master

[#54271200]
reformat
improve documentation of Groovy detection criteria
Extend version qualifier syntax

Allow version qualifiers to container periods ('.') to support
qualifiers such as are found in Spring Boot CLI versions.

[#54204032]
Link to new builder

The new builder uploads Spring Boot CLI zip files to the corresponding
repository.

[#54204032]
Merge 54204032-spring-boot-cli-container to master

[#54204032]
Attempt to fix build failure

Delete the log file after closing it in case doing it the other way
round is the cause for the logger failing to be writable, as observed
on Travis.

[#54204032]
Merge 54204032-spring-boot-cli-container to master

[#54204032]
Merge commit '420e35e6a5055946cc10e756f507adefaeb82845'