move buffer object types to separate header
the output variable is bound by default
blending works
make blend scope non copyable
prepare for loading shaders from streams
catch exception in video render method
sound check
move fragment + vertex shaders into separate files
asynchronous loading of shaders

now shaders are loaded asynchronously. The IO part is done in a
background thread, and the shader definition done in a task of
the display thread.
changing fs a little bit
fix deadlock w/ clang