Clone: Derive from Container and add get_source() and property.

Also correct get_source() to take a reference.

This is based on a patch here:
https://bugzilla.gnome.org/show_bug.cgi?id=725125#c5