The big rewrite in Go

This change ports Flint to Go for a little easier maintainability and portability. It's sort of cobbled together because I'm still learning the language and figuring out how to arrange things.

Would love some feedback from my friends @penland365 @alindeman @technoweenie @calavera @jingweno.