GladeProject: implemented GtkTreeModelIface with a GtkTreeStore proxy object.

This hopefully will set us free of treemodel bugs.

For example, dnd was almost unusable with current gtk master without this patch.
It was getting lots of iter warnings and eventually crashing if you wanted to drag
one child from one toplevel to another back and foward.

Besides, now there is less complex code to maintaing (about 300 lines) and
should be faster in general since GtkTreeModel implements the data tree
with GLists that do not regenerate each time you want to iterate over the model
like we had to do because getting children from objects creates a new list.
_glade_tsort() simplyfied api by using a GList for edges instead of a
custom linked struct since we do not need the marginal speedup
now that dependencies are only between toplevels.
This allow us to easily sort edges alphabetically.

tests/toplevel-order: Updated to new _glade_tsort() api
GladeProject: Changed the way we calculate graph dependencies.
Instead of using glade_widget_depends() which implied N^2 invocations/iterations
(where N is the numbers of objects in the project) we now calcualte
dependencies based on property references.
This way we only have to iterace over every object once to check the list
of properties that constitute a reference to them.

In a real world example, sorting objects in geany.glade decreased from 120ms to just 1ms

plugins/gtk+/gtk+.xml.in, plugins/gtk+/glade-gtk-widget.c:
  Removed unused glade_gtk_widget_depends()