Fixes and refactors *_prompt_info() functions for rvm and all other plugins

### Update
Fixes most of the issues that arise when themes use a *\_prompt\_info function that a user does not want.
There's a long list of problems people encounter, just taking one example: The af-magic theme implements virtualenv_prompt info to it's prompt - when people don't use the virtualenv plugin they receive a command_not_found error.
Theme creators now use conditional clauses to determine whether the function is available or not. Even worse, sometimes people just add the plugin even if they don't need it, just to get rid of the error message.

the prompt_info_functions file implements dummy functions for all *\_prompt\_info functions that can be found in the plugins section.These dummies just return with an exit status of 1 (that is: false). Because plugins are loaded after lib functions, users that add a plugin to their configuration will have the dummy implementation overridden by something that actually returns something.

New plugin creators are encouraged to add their *\_prompt\_info function to the list of dummy implementations by a doc string in the file's header.

This adds a lot to the 'just works' approach of oh-my-zsh as theme creators don't have to care if a *\_prompt\_info is actually available to them or not. It will just work out of the box without error messages. Check the following code piece to see a real example.

``` bash
# recent fix implemented by @andyfleming in #2330 
if type "virtualenv_prompt_info" > /dev/null
then
  RPROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'
else
  RPROMPT='$my_gray%n@%m%{$reset_color%}%'
fi

# after this pull request everything can stay as is
RPROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'

# works for virtualenv users like the true path in the above conditional 
# and for others like the false path.
```
Also implements a fix for the erroneous RPROMPT in af-magic. This is for convenience reasons, the fix is around in several other pull requests.

Fixes #2330, fixes #2328, fixes #2297, fixes #2319, fixes #2393, fixes #2389 and probably many others from the past and future.

===================
rvm_prompt_info fix comes into play when ZSH_THEME_RVM_PROMPT_OPTIONS actually contains a string value.

Let's say we have this:
``` bash
ZSH_THEME_RVM_PROMPT_OPTIONS='i v'
rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
echo $rvm_prompt # => i v
```
ZSH doesn't do string splitting by default, that's why such a weird output is displayed.
In an earlier version this PR solved this through an eval call, but that's overkill - sorry for the misunderstanding. Simply enabling word-splitting does the trick. It's possible now to pass in string values (like 'i v s') and arrays (like (i v s)).

Also changes the return value in case rvm is not found - now returns 1 (negative exit code). This makes OR sequences possible like
``` bash
echo $(rvm_prompt_info || rbenv_prompt_info) 
```
which otherwise return with an empty string, because rvm_prompt_info is never false.
Same goes for the implementation of rbenv_prompt_info in case you want to try it the other way around.
Also adds chruby_prompt_info which mirrors the functionality of rbenv_prompt_info.

All this allows us to easily implement a function ruby_prompt_info
``` bash
function ruby_prompt_info() {
  echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)
}
```
which can be used to clean up themes and add support for all ruby version management systems at once.