* reintroducing: processing stage:
   * split the transform stage into two parts, the actual user programmable transform stage ("vertex shader") and the processing stage (handles primitive assembly, additional primitive transformation, culling, clipping)
   * the processing stage is executed after the transform stage (and prior to the binning stage)
   * added an additional transform buffer that stores the transformed vertices (float4*)
   * transformed user data is now stored per-vertex instead of per-triangle (these were duplicated before -> waste of memory; however, this now requires access to the index buffer in the rasterization stage)
   * the "built-in" "index" variable given to user transform programs now stores the vertex id (before: triangle id); also: "VE" is now directly called "camera_position"
   * user transform programs now have to return their transformed float4 vertex (instead of calling the "built-in" transform function)
   * vertices (and thus triangles) can be directly discarded now by calling the "discard()" function in the transform program
   * the pipeline draw call now also requires the vertex count
 * oclraster_program and derived classes can now set their kernel function name (for better identification; -> renamed transform and rasterization kernels)
 * the camera constant buffer is now created and managed by the pipeline class instead of the transform_stage (this way, it's accessible from all stages + it's only updated when necessary)
 * added a get_vertex_count function to the a2m class
 * updated all samples accordingly
 * version bump