(SERVER-246) Add :borrow-timeout config option

Add :borrow-timeout configuration option, which allows the user
to configure the timeout when borrowing instances from the JRuby
pool and defaults to 60000 milliseconds. Change all calls to
the borrow-from-pool function to calls to
borrow-from-pool-with-timeout.
(SERVER-246) Improve Error handling after timeout

Improve the error handling in the `with-jruby-puppet` macro
when borrowing an instance from the pool times out.
(maint) Add detailed docs on GEM_HOME and JRuby REPL's

Without this patch the developer documentation does not inform the
reader how to install Ruby gem dependencies when running in development
mode, and how this process is subtly different from installing Gems for
use with JRuby spec tests and for use with a packaged `puppetserver`
install.  This is a problem because developers may need to install
support libraries such as `pry` in an effort to get a REPL much the same
way the lein repl is used and it is not clear how to accomplish this
given the three scenarios of from packages (production), development,
and testing.

This patch addresses the problem by providing detailed information about
how to install gem dependencies when running puppetserver from source
and how the process differs from installing gem dependencies for testing
and for production packages.

The change also addresses a known issue when running the pry repl from
within the lein repl where by STDIN is not shared between the two and
JRuby REPLs cannot read user input.

This patch also changes all occurrences of `$ puppetserver gem install`
to `$ sudo puppetserver gem install` because the former does not work as
expected as described in SERVER-263.
Merge pull request #332 from jeffmccune/maint_docs

(maint) Add detailed docs on GEM_HOME and JRuby REPL's
Merge pull request #329 from fpringvaldsen/SERVER-246-change-borrows

(SERVER-246) Add :borrow-timeout config option
(SERVER-29) Set JARS_NO_REQUIRE='true' on scripting containers.

JARS_NO_REQUIRE is an environment variable which, if set to `true`, will prevent
the loading of embedded jars using the `require_jar' method of the
`jar-dependencies` gem.

This is required to ensure that jruby-openssel, which is loaded by the JRuby
Kernel whenever ruby code requires 'openssl', does not attempt to load embedded
bouncy castle jars onto the classpath. The effect is to ensure that
jruby-openssl uses the bouncycastle included as a requirement of
jvm-certificate-authority rather than the version included with JRuby, as well
as preventing jvm-ceritificate-authority from using JRuby's bouncycastle.

This commit also adds an integration smoke test to ensure that the jar is
actually excluded by listing the contents of the jar then using the
`assert_no_match` minitest method to validate the listed output does not contain
BC jars.
(MAINT) Fix intermittent gem install failures.

* Change list of installed gems to reduce complexity of install. Beaker changes
  too often to use it here without specifying a concrete version, which in turn
  would require more complex handing of this list of gems throughout the rest of
  the test.
* Clears the list of rubygems sources before adding the internal mirror to
  ensure that gem installation problems are not masked by network failures.
Merge pull request #338 from waynr/maint

(MAINT) Fix intermittent gem install failures.
Merge pull request #331 from waynr/server-29

(SERVER-29) Set JARS_NO_REQUIRE='true' on scripting containers.
(SERVER-29) Fix jruby interpreter test.
Merge pull request #341 from waynr/server-29

(SERVER-29) Fix jruby interpreter test.