Issue title: Conditional on custom commands
 Issue body: I'm currently having to somewhat monkey patch powerlevel9k to add a custom command that I don't want to always be shown:

```bash
prompt_rvm_version() {
  if hash rvm 2>/dev/null; then
    local current_dir="$(pwd)"
    local has_gemfile=false
    while [[ $current_dir != "/" ]]; do
      if [[ -f $current_dir/Gemfile ]]; then
        has_gemfile=true
        break
      fi

      current_dir=$(dirname $current_dir)
    done

    if $has_gemfile; then
		 "$1_prompt_segment" "$0" "$2" "red" "white" "$(rvm-prompt i v p)" ""
    fi
  fi
}

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(rvm_version context dir vcs)
```
I reached that after reading the [Developer's Guide](https://github.com/bhilburn/powerlevel9k/wiki/Developer's-Guide) and taking a peek at the source code, but it would be cool if we could add a conditional directly to the custom command functionality. Something like:

```bash
has_gemfile_in_current_or_parent_dir() {
  if hash rvm 2>/dev/null; then
    local current_dir="$(pwd)"
    local has_gemfile=false
    while [[ $current_dir != "/" ]]; do
      if [[ -f $current_dir/Gemfile ]]; then
        has_gemfile=true
        break
      fi

      current_dir=$(dirname $current_dir)
    done

    if $has_gemfile; then
		 return 0
    fi
  fi
  return 1
}

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_rvm_version context dir vcs)

POWERLEVEL9K_CUSTOM_RVM_VERSION="rvm-prompt i v p"
POWERLEVEL9K_CUSTOM_RVM_VERSION_CONDITION="has_gemfile_in_current_or_parent_dir"
POWERLEVEL9K_CUSTOM_RVM_VERSION_BACKGROUND="red"
POWERLEVEL9K_CUSTOM_RVM_VERSION_FOREGROUND="white"
```

I looked around the documentation and source and couldn't find any indication that this was already possible, so if it is, at least some clarification on the docs would be nice.

Since I could already make every possible customization I wanted (kudos to you guys, btw), I guess this is not super essential, but it sure would be nicer and feel safer to do that without having to use any powerlevel9k internal function.
 Comments: 
 Comment 0: Couldn't you just not output anything when there isn't a gemfile?
Þann þri., 24. maí 2016 kl. 14:25 skrifaði Mateus Medeiros <
sheaeileen@example.org>:

> I'm currently having to somewhat monkey patch powerlevel9k to add a custom
> command that I don't want to always be shown:
>
> prompt_rvm_version() {
>   if hash rvm 2>/dev/null; then
>     local current_dir="$(pwd)"
>     local has_gemfile=false
>     while [[ $current_dir != "/" ]]; do
>       if [[ -f $current_dir/Gemfile ]]; then
>         has_gemfile=true
>         break
>       fi
>
>       current_dir=$(dirname $current_dir)
>     done
>
>     if $has_gemfile; then
>          "$1_prompt_segment" "$0" "$2" "red" "white" "$(rvm-prompt i v p)" ""
>     fi
>   fi
> }
>
> POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(rvm_version context dir vcs)
>
> I reached that after reading the Developer's Guide
> <https://github.com/bhilburn/powerlevel9k/wiki/Developer's-Guide> and
> taking a peek at the source code, but it would be cool if we could add a
> conditional directly to the custom command functionality. Something like:
>
> has_gemfile_in_current_or_parent_dir() {
>   if hash rvm 2>/dev/null; then
>     local current_dir="$(pwd)"
>     local has_gemfile=false
>     while [[ $current_dir != "/" ]]; do
>       if [[ -f $current_dir/Gemfile ]]; then
>         has_gemfile=true
>         break
>       fi
>
>       current_dir=$(dirname $current_dir)
>     done
>
>     if $has_gemfile; then
>          return 0
>     fi
>   fi
>   return 1
> }
>
> POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_rvm_version context dir vcs)
>
> POWERLEVEL9K_CUSTOM_RVM_VERSION="rvm-prompt i v p"
> POWERLEVEL9K_CUSTOM_RVM_VERSION_CONDITION="has_gemfile_in_current_or_parent_dir"
> POWERLEVEL9K_CUSTOM_RVM_VERSION_BACKGROUND="red"
> POWERLEVEL9K_CUSTOM_RVM_VERSION_FOREGROUND="white"
>
> I looked around the documentation and source and couldn't find any
> indication that this was already possible, so if it is, at least some
> clarification on the docs would be nice.
>
> Since I could already make every possible customization I wanted (kudos to
> you guys, btw), I guess this is not super essential, but it sure would be
> nicer and feel safer to do that without having to use any powerlevel9k
> internal function.
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly or view it on GitHub
> <https://github.com/bhilburn/powerlevel9k/issues/267>
>
-- 
---
Matthías Páll Gissurarson

 Comment 1: @Tritlo I tried that, but then what happened was this:
![image](https://cloud.githubusercontent.com/assets/3318372/15504487/a7660ecc-2195-11e6-8e68-600a91246868.png)

When I took a peek at the source code, I figured it was because custom commands seem to be added directly with this function:

```bash
prompt_custom() {
  local command=POWERLEVEL9K_CUSTOM_$3:u

  "$1_prompt_segment" "${0}_${3:u}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$(eval ${(P)command})"
}
```

So even when my function didn't print anything, the red segment was still there. I guess because the eval in prompt_custom() didn't return anything, but the segment itself is still added.
 Comment 2: Maybe you could patch it so that a segment is not rendered if empty?

þriðjudagur, 24. maí 2016 skrifaði Mateus Medeiros <sheaeileen@example.org
>:

> @Tritlo <https://github.com/Tritlo> I tried that, but then what happened
> was this:
> [image: image]
> <https://cloud.githubusercontent.com/assets/3318372/15504487/a7660ecc-2195-11e6-8e68-600a91246868.png>
>
> When I took a peek at the source code, I figured it was because custom
> commands seem to be added directly with this function:
>
> prompt_custom() {
>   local command=POWERLEVEL9K_CUSTOM_$3:u
>
>   "$1_prompt_segment" "${0}_${3:u}" "$2" $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$(eval ${(P)command})"
> }
>
> So even when my function didn't print anything, the red segment was still
> there. I guess because the eval in prompt_custom() didn't return anything,
> but the segment itself is still added.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly or view it on GitHub
> <https://github.com/bhilburn/powerlevel9k/issues/267#issuecomment-221260500>
>


-- 
--  Matthías Páll Gissurarson <http://mpg.is/>

 Comment 3: Oh, that's true. Much easier than my solution. Guess I can submit a simple PR for that then.
 Comment 4: Merged #268!
{'source': 'GithubIssues', 'repo_name_with_owner': 'bhilburn/powerlevel9k', 'issue_id': 156493970, 'repo_stars': 10384.0}