Split actually taking the snapshot into its own file.
This adds an inhibit api that code from the reftest module can use to delay the taking of the snapshot. Also refactor the code in gtk-reftest to use the inhibit mechanism for its own delaying of the snapshot until after the first expose.