Get rid of explicit exit in fish branch of `rbenv-init`

Allows for code to be added to the end of the script which will not
mysteriously fail to run for fish shell.
Add hooks for `rbenv-init`

This can allow plugins to implement their shell functions into user's shell.
For example, install following scripts as `${RBENV_ROOT}/rbenv.d/init/detect.bash`
will detect the changes of the Ruby version in rbenv.

```bash
cat <<EOF
_rbenv_hook() {
  if [ -n "\$OLD_RBENV_VERSION" ] && [[ "\$OLD_RBENV_VERSION" != "\$(rbenv version-name)" ]]; then
    echo "rbenv: Ruby version has been changed: \$OLD_RBENV_VERSION -> \$(rbenv version-name)"
  fi
  OLD_RBENV_VERSION="\$(rbenv version-name)"
};
if ! [[ "\$PROMPT_COMMAND" =~ _rbenv_hook ]]; then
  PROMPT_COMMAND="_rbenv_hook;\$PROMPT_COMMAND";
fi
EOF
```