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))
```
This seems like a change in behaviour to me.  Previously, `_orig_color` stored the un-alphaified value, now it is stored after the application of alpha.

That said, I don't see _why_ we need `self._orig_color`.  This file is the only place it occurs, I think we can just drop it and use (the now badly named) `self._rgb`