urlselect: split setup()

- split config loading from setup() into its own function to make
  setup() look less like a monster

- use run_external_cb for calling tmux