Work on frontend

Add AstPrinter parse that will pretty print the ast in json format
Add support for tokens whoes value is a constant not comming from the program text
Rewrite select expressions in the parser from X?Y to X?func(#:TUp)->(Bool) Y end
Improve the typechecking of binops, to more closesly match the code in the codgen
Add typechecking for selection expressions