Float support

Adds support for floats in the entire pipeline.

Also identified and fixed an error where variables could be declared with expressions that were of the wrong type if they were referenced with a variable.

closes #33 
this checks that the type checked `expr` is of the correct type