change style to use auto, extract udp server to class
remove separate shader class, combine vert and frag

Shader class has been compressed into ShaderProgram class, no need for
individual shader objects.

GLSL shaders now require vertex and fragment shader to be in the same file.
They are distinguished using preprocessor defines VERTEX and FRAGMENT
add semaphore, add task manager block until ready

Task manager will not block until all of it's task threads have notified that
they are ready for execution.
add emplace to queue and priority_queue
change task manager collections to foundation ones