Bug 588273 - Make number of validated rows depend on time, not row count
Bug 588273 - Make number of validated rows depend on time, not row count

Previously, do_validate_rows() validated 300 rows per iteration. While
this is usually not problematic, as the typical tree view contains less
than 100 rows. Tree views with a lot of columns or complex cell
renderers could take inacceptably long, like:
- Epiphany's location bar entry completion has multiline and marked up
  text in every cell. Validating a single row took ~1.5ms here.
- In the list view in Nautilus, When enabling all columns, validating a
  single row would take ~3ms.
With 300 rows per iteration, that made those examples take 500ms/1s in a
signle main loop callback, and this obviously caused responsiveness
problems.

Now the code uses a timer and limits the time for validating rows to
30ms. This can cause less lines to be invalidated per call, so the
function might be called more often, but generally results in more
responsive applications.

nacho/gtk-,chipx86/gtk,simokivimaki/gtk,Adamovskiy/gtk,Adamovskiy/gtk,ebassi/gtk,grubersjoe/adwaita,msteinert/gtk,davidt/gtk,jessevdk/gtk,chipx86/gtk,chergert/gtk,ebassi/gtk,jessevdk/gtk,johne53/MB3Gtk-2,bratsche/gtk-,simokivimaki/gtk,davidt/gtk,chipx86/gtk,Adamovskiy/gtk,davidgumberg/gtk,Adamovskiy/gtk,zsx/gtk,zsx/gtk,davidgumberg/gtk,zsx/gtk,ahodesuka/gtk,alexlarsson/gtk,Unity-Technologies/gtk,jadahl/gtk,jadahl/gtk,Lyude/gtk-,davidgumberg/gtk,nacho/gtk-,msteinert/gtk,Unity-Technologies/gtk,chergert/gtk,alexlarsson/gtk,grubersjoe/adwaita,alexlarsson/gtk,nacho/gtk-,zsx/gtk,bratsche/gtk-,simokivimaki/gtk,johne53/MB3Gtk-2,Adamovskiy/gtk,nacho/gtk-,msteinert/gtk,Distrotech/gtk2,msteinert/gtk,chergert/gtk,jigpu/gtk,Adamovskiy/gtk,jigpu/gtk,Lyude/gtk-,ebassi/gtk,simokivimaki/gtk,grubersjoe/adwaita,Lyude/gtk-,Distrotech/gtk2,zsx/gtk,chergert/gtk,bratsche/gtk-,Distrotech/gtk,ahodesuka/gtk,Lyude/gtk-,alexlarsson/gtk,johne53/MB3Gtk-2,Sidnioulz/SandboxGtk,jadahl/gtk,Adamovskiy/gtk,jigpu/gtk,jigpu/gtk,Sidnioulz/SandboxGtk,ahodesuka/gtk,Unity-Technologies/gtk,Lyude/gtk-,alexlarsson/gtk,simokivimaki/gtk,chergert/gtk,bratsche/gtk-,johne53/MB3Gtk-2,chergert/gtk,davidgumberg/gtk,ahodesuka/gtk,grubersjoe/adwaita,grubersjoe/adwaita,bratsche/gtk-,Distrotech/gtk,ebassi/gtk,Sidnioulz/SandboxGtk,Sidnioulz/SandboxGtk,nacho/gtk-,Unity-Technologies/gtk,davidt/gtk,jigpu/gtk,bratsche/gtk-,grubersjoe/adwaita,grubersjoe/adwaita,jadahl/gtk,ahodesuka/gtk,ahodesuka/gtk,chergert/gtk,davidgumberg/gtk,jessevdk/gtk,jadahl/gtk,Lyude/gtk-,Distrotech/gtk,Lyude/gtk-,davidgumberg/gtk,davidgumberg/gtk,Adamovskiy/gtk,alexlarsson/gtk,alexlarsson/gtk,Distrotech/gtk2,grubersjoe/adwaita,davidt/gtk,Distrotech/gtk,davidt/gtk,Distrotech/gtk2,jadahl/gtk,jessevdk/gtk,davidt/gtk,msteinert/gtk,simokivimaki/gtk,jigpu/gtk,jessevdk/gtk,jadahl/gtk,Unity-Technologies/gtk,jadahl/gtk,chergert/gtk,chipx86/gtk,jigpu/gtk,Sidnioulz/SandboxGtk,Distrotech/gtk2,ebassi/gtk,Sidnioulz/SandboxGtk,msteinert/gtk,alexlarsson/gtk,jessevdk/gtk,ahodesuka/gtk,johne53/MB3Gtk-2,Lyude/gtk-,Distrotech/gtk2,ebassi/gtk,jessevdk/gtk,chipx86/gtk,davidgumberg/gtk,ahodesuka/gtk,Distrotech/gtk,jigpu/gtk