Prefix more error messages with GLSL to make clear where they are coming from
Use negative values to signal errors in OpenGL context creation
Add minimal test for OpenGL float textures
Generate correct GLSL code for float textures
Minor cleanup
Correctly transfer floating point textures on GL and GL ES

Turns out this is one of the places where the desktop and mobile versions of
OpenGL use slightly different conventions that yield significantly different
results...
Merge branch 'master' into glsl_float_textures
Use Halide conventions for enums

CamelCase instead of UPPERCASE
Add support for running with OpenGL 3.2 core profile

Right now, the runtime doesn't work with older OpenGL and ES anymore, so
there's some backporting work still to be done...
Merge branch 'master' into glsl_float_textures
Better handling of optional OpenGL functionality

texture_rg: textures with just one or two channels
vertex_array_object: required for OpenGL >= 3.0
Create OpenGL 3.2 Core context on Linux

This is mainly to ensure that Halide works correctly with modern OpenGL, in
particular in applications that don't provide compatibility contexts.
Merge branch 'master' into glsl_float_textures

Conflicts:
	src/CodeGen_OpenGL_Dev.cpp
	src/runtime/opengl.cpp
Initial pass at removing varargs from the runtime.

This is necessary to avoid calling convention woes on nacl and windows.

Requires reworking AssertStmts to just take a string, so it touches a
lot of code.

Also required removing uses of halide_printf from the runtime, which
touches a lot of code there. It has been replaced with a std::cout-style
thing, which more closely matches how debugging prints work in the compiler.

This involved an implementation of float and double printing *shudder*.
Still, now we have platform-independent printing, and can remove the
windows-specific float printing hack too.

There are still a bunch of debug_prints in the runtime, with temporary
definitions of halide_printf and halide_error_varargs to make them work.
Fixing this is next.
Merge branch 'master' into no_varargs

Conflicts:
	Makefile
	src/Target.cpp
Remove halide_printf, halide_error_varargs usages from runtime
Merge branch 'master' into no_varargs
Remove use of varargs in cache.cpp

tuple buffers are now passed in an array. Involved adding a make_struct
intrinsic. It just dumps the Exprs into a struct on the stack and
returns the pointer to it.
Remove some more printfs in cache debug logic
Remove va_list helpers from runtime_internal