don't use global definition in standalone gen

bundler was using the global 'Bundler.definition' for
standalone, but the local definition elsewhere. This was
getting in the way of using bundler from within an application
to generate a standalone bundle if bundler was being used
to bootstrap the application in the first place.
Merge pull request #2651 from cowboyd/use-instance-definition-in-installer

don't use global definition in standalone gen
Retry fetch specs with `--retry`

This PR adds a general purpose Retry class that can be re-used where-ever retry code is needed!

It also allows you to call `bundle install --retry 3` which will attempt to connect to ruby gems 3 times before failing, and emit a warning message each time
Retry git commands
Merge pull request #2601 from schneems/schneems/retry

Retry fetch specs with `--retry`
extract into Bundler.ruby_version
add Bundler::RubyVersion#host
include the unknown engine's name
add user agent to fetcher requests
also include host data in the user agent
on JRuby, RbConfig::CONFIG["host"] doesn't exist
default requests have "Ruby" in the user-agent
init the connection once
set user agent without "Ruby, "
random id to correlate requests in one run
Add command to user agent for fetcher requests

Checks bundler, rubygems, ruby, command
Merge pull request #2649 from joyicecloud/user_agent

Add user agent to fetcher requests
just send the command name in the user agent
NHP handles no SSL now
retry specs that run on 1.8.7