Python GUI now uses OCaml solver

Instead of driving the solve itself, the logic is now in the OCaml and
the GUI just displays what it's told to display.

A couple of user-visible changes:

- The notes field in the versions list is now more detailed.

- The bug report dialog uses the diagnostics system to explain why the
  solve failed (if it did), rather than just listing missing components.