Ensure `chruby` has been loaded

BSD variants don't automatically source `/etc/profile.d/chruby.sh` so we
must ensure `chruby` has been loaded before attempting to use it.
Point at home with `~` as `$HOME` might not be exported.

This is true when Jenkins is remotely executing commands on slaves.
Don't automatically load auto-switching

This is surprising in the context of a build slave. Users can still
opt-in to this behavior by sourcing `auto.sh`.
Don't globally load `chruby`.

Some Unixes don't load individual environment startup scripts from
`/etc/profile.d/*`. For consistency it's easiest to just source the
main `/usr/local/share/chruby/chruby.sh` script with `.bashrc`.

We are also being good citizens by not loading `chruby` globally for all
users of the system.
Deploy patched `chruby-exec` that works under non-login shells

The version of `chruby-exec` that ships in `chruby` 0.3.8 does not work
under non-login shells as it assumes `/etc/profile.d/chruby.sh` loaded
the `chruby` function. This file was taken from the following un-merged
PR that fixes the issue:

  https://github.com/postmodern/chruby/pull/250/files
compute extract path basename based on tarball name

The top-level directory in a tarball is usually the same as the filename
minus extension. This can be easily computed if our source url ends in
`.tar.gz` or `.tgz`. We can fall back to the resources name and version
if the source url is wacky (aka a GitHub generated tarball url) and does
not end in a file extension.

This change also allows `remote_install` resources to have unique name
in the resource collection.
Pre-1.9 Ruby uses `--without` flags instead of `--with-out`!
Merge pull request #26 from opscode-cookbooks/schisamo/chruby-fixes

Various chruby fixes