Add and use retro_try()
This simplifies error handling and hardens it by simulating a try/catch block pair. This also automatically fixes some error leaks.
This also adds retro_try_propagate() and retro_try_propagate_val() to simplify the most common use-case of retro_try().
This helped me catch some unhandled errors, which makes me think this design may be good.
Edited by Adrien Plazas