update instead of creating a new object_info

If an object_info exists for the id, update it, don't just create a new
one regardless.

This allows us to maintain the surface state over description updates.
free update graphs
chain surface descriptions

If a surface has a main_surface set, combine the desciptions of both for
the graph. This tells whose sub-surface it is.