#248 - Major refactoring of the Upgrade Gap and Production Idle alert functionality.
Now the alerts are modeled as records and logic is broken into actions and functions to greatly reduce the complexity