BUG: DataFrame.plot raises ValueError when color name is specified by multiple characters 
Derived from #9894. Passing color name with multiple characters results in `ValueError`. Below is the bahavior of current master.

```
# OK
df = pd.DataFrame(np.random.randn(3, 3))
df[0].plot(color='green')
# single green line

# OK
df.plot(color=['green'])
# triple green lines

# NG
df.plot(color='green')
# ValueError: to_rgba: Invalid rgba arg "e"
# -> This should be triple green lines
```

If passed str can be parsed as both single color and color cycle, following error will be raised.
- _"'green' can be parsed as both single color and color cycle. Specify each color using a list like ['green'] or ['g', 'r', 'e', 'e', 'n']"_

Currently, there is no color name which can meet above condition (thus cannot tested).
- http://matplotlib.org/examples/color/named_colors.html

cc @TomAugspurger @jorisvandenbossche 
 Why is the third case not OK? I would only rasie the error if the length is correct (corresponds with the number of columns, as only then it is ambiguous?)
 Ah, I meant NG(raise error) in current master. The fix allows to draw 3rd case with 3 lines in green.

> I would only rasie the error if the length is correct (corresponds with the number of columns, as only then it is ambiguous?)

Currently, the logic only checks whether the input can be parsed as both single color and color cycle, without comparing input length and the number of columns. Because `color='rg'` for 10 columns `DataFrame` is valid as color cycle.
 ah, yes :-)

Yes, for the length, you can ignore my comment, as now if the length is shorter it is regarded as a cycle that gets repeated, I see now
 @TomAugspurger Can you check this when you have a time?
 @TomAugspurger @jorisvandenbossche Looks OK? Let me merge this if there is no objection until this weekend.
 Looks ok to me!
 :+1: 
 Voila!
 Thanks. Will back to #9894.
