Correctly handle vector types for builtins and div
Explicitly truncate when doing float->int casts in GLSL

This is for cases where both values are represented using "float"
variables. For example, for uint8->float casts, we can optimize away the cast,
but for float->uint8 casts, we have to perform an explicit truncation because
both types are mapped to "float" in GLSL.
Make GLSL version of lerp (more) compatible with CPU implementation
Add more unit tests for GLSL codegen and math functions
Fix unit test
Fix several smaller issues
Merge pull request #498 from halide/better_glsl_vectorization

Improve codegen for GLSL