* reorganized pipeline: triangles that are culled in the transform program are no longer added to the transformed buffer (-> no longer passed to the binning kernel)
 * due to this change:
   * added an info buffer that currently holds the amount of triangles that passed
   * triangles are added to the transformed buffer using an atomic index
   * reorganized user output buffer handling (will be copied to global memory at the end; user accesses output as private memory now, instead of global memory)
   * binning and rasterization kernels are only called now when there are triangles that have to be rendered
   * removed the index buffer kernel parameter from the rasterization kernel (not needed any more and unusable)
   * user output and passing from transform -> binning -> rasterization can be considered "packed" now
 * added opencl::_fill_buffer function (will call opencl 1.2 enqueueFillBuffer); note that this is still experimental on os x
 * added an optional size parameter to opencl::read_buffer
 * actually added a function to the opencl class to get the (computed) platform cl version
 * renamed rasterize_program to rasterization_program (for consistency)
 * renamed fragment_xy to fragment_coord
 * simple shaders have an actual function name now (instead of "main")