aggregate.py: fix plotting of more than 3 backends (#6449)
Add some more styles and wrap around the style arrays so that we never access them out of bounds.
While at it, fix --report=speedup plots to support missing points; matplotlib's errorbars take empty points as NaN's instead of None's.