Refactoring
Fixed an error handling a missing layout preference

SingleImageLayout is used as a default layout if one is not found in the
preferences flie.
Fixed bug in binding GProperties due to misuse of the yield keyword

Also changing triple quotes to sixtuple quotes
The preferences dialog is now extensible/component based

Preferences tabs can be added/removed from the dialog, each tab has a label
and a proxy widget factory method. The label is, obviously, used as a
tab label and the proxy widget is inserted inside the contents of that tab.

This is a great refactor imho since the preferences dialog was getting
sort of over emcumbered.