Reworked most of the adapter registration code to keep it DRY and more tightly adhered to the gtkmvc style of doing things.