Timeout on connect and open

A testcase which times out only on read can be shown to block for
longer than the specified timeout when attempting to get from
http://1.1.1.1. With connect and open timeouts specified, the timeout
appears to operate correctly.

[#54290822]
Merge 54290822-timeout-connect-and-open to master

[Completes #54290822]
Code Climate Test Coverage

This change polishes the spec_helper such that Code Climate test
coverage is now available.
Merge branch 'code-climate'
Reformat all Ruby code

Adhere to RubyMine conventions from now on. In particular, the private
method should not increase indentations of subsequent statements.

[#56856706]
Merge 56856706-reformat-ruby-code to master

[Completes #56856706]
Reduce duplicated code

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Remove duplicate download code associated with ApplicationCache

Also tighten up the ApplicationCache interface by hding the
constructor.

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Remove duplicate code

Introduce a ConfiguredItem helper method which wraps exceptions
and a new check_size method on TokenizedVersion. Then reuse these
methods in place of duplicate code.

Add a Groovy utility method to find all Groovy files.

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Factor duplicated code into a single method

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Move duplicated code to Resources utility class

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Rename to avoid spurious code duplication warnings

[#56447064]
Merge 56447064-code-climate to master

[#56447064]
Improve test coverage

[#56447064]
Merge 56447064-coverage to master

[Completes #56447064]