That actually is how `draw_path` is working, now, but I couldn't (or rather, didn't) guarantee that everything else worked that way.

The issue is there are instances where the GC is applying an alpha property to things that have neither fill or draw colours -- e.g., images -- which is done by setting an alpha on the backend's underlying context. (The Mac OS X backend comes to mind as an example.) Supporting that means:
* The GC still needs to make use of its `_alpha` in some situations
* We don't want this to *stack* on top of the RGBA specified in the colors
* So we ought to guard against that.

I believe for `draw_path` itself, this isn't needed because the other changes I've made mean that `gc.set_alpha` isn't called for that -- the alphas (overridden or not) go directly in the edge and fill colours. But there are many other draw methods that I haven't vetted that could possibly call `gc.set_alpha()` and give it colours with alpha channel values and I was concerned about them clashing.