Fix #678; migrate the rest of the preference pages to the new framework, couple gremlins to track down still