Expose mark stack Haskell state to C code

This allows us to directly call peekmark and we can get rid of the
ugly hack that was used before