2 draw optimization -- pre-parse colors, short-circuit path construction code

Profiling has revealed two small but noticeable hits in drawing performance.  These are addressed by this PR.  Each commit represents about a 4% improvement at draw-time and they add to 8%.  I'm not sure if this passes tests so this is a travis-ci probe as well as a request for comment.

My timings were done like so:
```
from __future__ import print_function
import timeit
import numpy
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

POINTS = 500

figure = Figure(figsize=(6, 6), dpi=72, facecolor=(1, 1, 1), edgecolor=(0, 0, 0))
ax = figure.add_subplot(1, 1, 1)

scat = ax.scatter(numpy.arange(POINTS), numpy.sin(numpy.arange(POINTS)))

canvas = FigureCanvas(figure)

print(timeit.timeit('canvas.print_to_buffer()', setup='from __main__ import canvas', number=100))
```
@tacaswell , I agree that _orig_color should be deleted, but I say that with some trepidation since the relationships of _alpha, _forced_alpha, _rgb, _orig_color are scary to me in the code before this patch.  Whether or not all 4 are geniunely needed, I don't know, but I'm sure they are named very sub-optimally.  For instance, "_rgb" should really be "_rgba" as you note.

I'm going to investigate this point further right now.