MarkersVisual supports unique marker colors for edges/faces passed as numpy array.

Individual markers inside the MarkersVisual can now be given a unique color for both edges and faces.  If the user uses a numpy array, this is passed to a ColorArray, otherwise it's assumed to be a simple Color as before.

@Eric89GXL reviewed a previous iteration in #633 and suggested the ColorArray.
I would call this Color or ColorArray, since saying "ColorArray" is meant to be imply that you can pass anything that can be understood by the ColorArray class (of which ndarray is one example).