Eliminate AbstractRGBA and improve type constraints

Without multiple inheritance, it turns out you can't really do
anything with AbstractRGBA. Sorry for adding it in the first place.