Updated suspension saturation thresholds, added saturation labels, make lpy plot for ETMX L3 if no saturating suspensions
Closes #213 and #164. Also partially addresses the never-merged !102
To address #213: I updated the get_saturation_threshold fuction in config.py to add in the newest bit configuration change at H1. In saturations.py, I edited find_saturations to have it write each channels' saturation threshold on the saturation plots above the red dashed lines so it is easier for us to know what the threshold is. Here is an example of what the plots looked like now with the thresholds written.
Through updating the saturation values for the new 28-bit ETMX stages at H1, many of the saturations that we would previously see happening before the refined time now happen after, meaning that NLN locklosses (those that I've seen at least) won't have the ETMX L1/L2/L3 stages on the plot of saturating suspension channels anymore. Additionally, if no suspensions saturate, the lpy plot won't be created at all. To make it easier to see the ETM channel and to give some more info when glancing at the page, I edited the lpy.py plugin so that if no saturating suspensions are found before the lockloss time, it will still create the lpy plot using the ETMX L3 channel as a default. This was filed as Issue #164 and addressed as part of !102, but unfortunately had never been implemented. Below are the before and after for what it looks like/says when there are no saturating suspensions. You can see I've normalized the data with respect to a threshold value of 524288 counts because otherwise, the movement of the ETMX DOFs are basically impossible to see with their saturation threshold of 134217728.
You can also see more examples on my public_html, where I've done multiple tests at H1 with different scenarios and have had it work well. This new code has not been tested at L1 yet.