escape envvars in regexes with \Q and \E
Don't throw warnings if perl-5.8.0 has been installed with Perlbrew.
Fix bug when PERLBREW_HOME contains regex metacharacters

This can readily happen when running the test suite on a Mac, because the
standard TEMPDIR location is a per-user location which can contain "+"
characters.
New feature: "perlbrew install stable"

This installs the most recent available stable Perl, so it is suitable for
recommending to Perl newcomers, even if the recommendation might live a lot
longer than a year.
New feature: "perlbrew install --switch $perl"

Automatically switches to the newly-installed Perl once installation
completes successfully.

This means that a good recommendation for newcomers to Perl who've installed
Perlbrew can be simply

    perlbrew install --switch stable

rather than

    perlbrew install 5.16.2
    perlbrew switch 5.16.2

The latter approach has the additional disadvantage that the appropriate
"latest stable Perl" version changes over time.
do not rely on unreliable hash ordering
fixes issue #279
Merge pull request #278 from rjbs/hashes-are-random

do not rely on unreliable hash ordering
Merge pull request #265 from felliott/quotemeta_envvars

Escape envvars in regexes with \Q and \E (fixes test failure on OS X)
Merge pull request #280 from aixtal/iss279

fixes issue #279
Merge pull request #270 from happy-barney/develop

Fix issue #242: --quiet option does not work with exec
Merge pull request #266 from wolfsage/fix-5-8-0-warnings

Don't throw warnings if perl-5.8.0 has been installed with Perlbrew.
Merge remote-tracking branch 'arc/install-switch-stable' into develop

Conflicts:
	lib/App/perlbrew.pm
fix this test when PERLBREW_LIB is defined.
for releasing.
Merge branch 'release/0.59' into develop
a bit exit status code handling in the perlbrew bash function to allow better shell scripting.

With this commit, the following shell script works as expected:

    #!/bin/bash
    eval "$(perlbrew init-in-bash)" ## init all PERLBREW_* vars only in this shell context

    perlbrew use 5.8.8 ## change to a version that might not exists
    if [[ $? -eq 0 ]]; then
      echo "worked"
    else
      echo "failed"
    fi

It should also work using `||` too.

    perlbrew use 5.8.8 || exit 1

The `switch` command also works this way, however it does have the side effect
that updates `$HOME/.perlbrew/init` file on successful invocation. This is
the expected behaviour.

Briefly tested with bash and zsh.
* Fixes issue #276
Fixed bug with perlbrew env where PERL5LIB would be unset

If PERL5LIB was naturally unset, perlbrew env wouldn't find the perlbrew
supplied PERL5LIB. I've fixed this, assuming that PERL5LIB is always
in the last position of PERL5LIB (which your code seemed to assume as well).
Fixed bashrc that perlbrew init generates

zsh could not find the command "command perlbrew" as it was looking for a
binary named "command perlbrew", complete with spaces. This commit pops
and eval in the subshells so that this is no longer an issue.

It also standardizes the use of eval and subshells where necessary.