cleanup for the challenge selection dialog

adding some styling, reorganizing the HTML so it looks more organized, and moving the dialog creation into the ajax callback so we don't have to async:false it.