Restructure renderer

- Add an OS library with a new primitive parallelExecuteAndSync
- Rework renderer to use this
- Break uniforms into a separate parameter that are passed into
shaders.