Allow reuse of protein backbones and PAE plotting routines
I added a two lower level routines to plot a single colored protein backbone using matplotlib and plot a single PAE heatmap. These new routines are in colabfold.py and are called plot_protein_backbone() and plot_pae(). The previous code only had functions to make the multi-pane plots needed by the ColabFold web server (plot_protein and plot_paes). The two new routines allow other code to make the same plots but group them in different ways. The ChimeraX interface to ColabFold plots each predicted model and its PAE together.
I also added a new callback argument to the run() function in batch.py called input_features_callback that is run after the MSA is computed but before the predictions are computed. ChimeraX uses this to display the MSA plot before the predictions are run. This differs from the ColabFold web server that shows the MSA plot after all the predictions are run.
The purpose of these improvements is so that the ChimeraX interface to ColabFold does not need to use its own copied versions of the colabfold pypi package plotting code.
None of the existing colabfold API was changed, so all code that uses previous colabfold plotting functions should work identically to their previous behavior. I did make plot_protein() and plot_paes() use the new routines so there is some risk that I inadvertently changed their behavior. To test this I ran the ColabFold web server (https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb) using these modifications, running monomer, heterodimer and homodimer examples and all plots looked the same.