Fix graph rendering
Fix graph rendering

This makes our graph rendering much more robust and efficient by skipping
"values" that wouldn't be rendered anyways. We use itertools.islice to
slice the values iterator into just the values that will actually be
drawn.

It also changes rendering so that antialiasing will not occur between steps, but only on the edges of the entire graph(as it used to be).

This was broken a bit by the drawer changes, but really these things were just being done incorrectly before. Each segment of the graphs used to be separate paths in cairo, now the graph is just a single path.

tych0: change a property to a function

Closes #2185

qtile/qtile,ramnes/qtile,qtile/qtile,ramnes/qtile