Although one could easilly be made. All that is needed is replacing all trigger creation calls to a custom function that returns a trigger.
In this function, you create a new trigger, place it onto a list of triggers (I advise an array list) and then return it.
Do not forget a function to remove the trigger but you may be forced to perform a linear search of the list which is less optimal.
As you have a list of all triggers ever created, you can simply enumerate through them and pause or unpause them (I advise a function that does that).
More advanced data structures and code complexity could be used to improve the efficiency of the trigger removal code. One such example is using a list of structs (which have both a trigger and the position it is in the array list) and mapping each trigger to its corosponding struct.