work around bug in git 1.8.2.1 in tests

Making empty commits in tests blocked by opening the default text
editor, waiting for a message which we specified to be empty.

http://thread.gmane.org/gmane.comp.version-control.git/225529
bail out early if readlink is not available

readlink comes from GNU coreutils.  On systems without it, rbenv used to
spin out of control when it didn't have readlink or greadlink available
because it would re-exec the frontend script over and over instead of the
worker script in libexec.

Fixes #389
suggest cloning rbenv via https instead of git://
Merge remote-tracking branch 'upstream/master' into rbenv
ensure cleaner PATH in test environment
Homebrew homepage location changed
Merge pull request #428 from almog/master

 Homebrew homepage moved to a new location
Clarify the search precedence for .ruby-version files.

Closes #432 [ci skip]
Install a more recent version of Ruby in README instructions
check if completion script is readable

fixes #444
fix rehash when paths have spaces in them

fixes #450
add fish shell support
cleanup in fish

Use process subtitution syntax:

    . (rbenv init -|psub)

instead of:

    eval (rbenv init -)

because the latter doesn't work well with newlines.
fix `rbenv()` function in ksh and dash

ksh syntax becomes:

    function rbenv {
      typeset command

`typeset` only declares a local variable if there's an explicit
`function` declaration; otherwise the variable leaks.

Other shells use this syntax:

    rbenv() {
      local command

This is for dash compatibility, which supports neither `function` nor
`typeset`.

references #205, fixes #408
Merge branch 'shell-fixes'
Merge remote-tracking branch 'upstream/master' into rbenv