optimise ofShader

+ caches uniformLocations upon their first call within their associated ofShader object

+ any call to glGet* forces the GL pipeline to flush and is therefore exceedingly expensive (mainly because flushes cancel out GPU otimisations)

+ caching the uniform locations in ofShader alone leads to a 16% speed increase on programmableGL/GLES2.0 (raspberry pi)

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
make ofShader uniformLocation cache optimization RPi specific

+ will only happen if TARGET_RASPBERRY_PI is set during compilation

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
fix ofVbo::bind() for custom Attribute data

+ glVertexAttribPointer was not bound to the correct buffer (in fact not bound to any particular buffer at all) for attribute data added to Vbos through ofVbo::setAttributeData().
+ this change fixes this.

boy, this one was painful to find.

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
Merge pull request #14 from tgfrerer/feature-elinuxProgrammableGL

optimise ofShader