Introduce Type Safety to Fulmar

This types the internals of Fulmar. It's also a good step toward typed Fulmar scripts. The behavior of the code is not observably different from untyped Fulmar in any way I've been able to discover (except for the interaction between indent and position-indent).