GbDocument: pass toplevel (workbench) to save_async() functions

This allows them to display a GtkDialog with proper transient-for when
necessary. Some might think that this is leaking UI into the buffer
management, and to them I say, GtkTextBuffer can already store widgets.

C'est la vie