Implement the settings dialog

Background image is TODO, also need to work out why it randomly
inverts/de-inverts.