plot argument handling

In svn 7298 I changed a key chunk of code that was working fine, so I would like to explain why I fixed it when it wasn't broken, and ask for review and testing, or at least keeping your eyes open for anything I may have overlooked.

In the course of making the very simple change to support scalar arguments to plot (for plotting a single symbol), I found, as I have many times before, that the argument handling was rather complex, repetitive, and hard to follow. I couldn't resist seeing if I could simplify it, in the hope that this would make it easier to maintain. The result is a reduction in LOC and a codepath that to my eye, at least, is easier to follow.