Work on cleaning up the frontend to use new conventions and abstracting
some initialization into seperate functions

Specifically I moved the installation of signal handlers into a seperate
function
.
I also added another field to the environment struct, protect_field,
this is the first field on the field stack and will catch anything, I
added it so I didn't need to keep creating a top level frame to catch
errors every time I run code.

A lot of this work was just updating old code to use newer conventions
and functions