Added capability detection for vertex arrays and uniform blocks

That's a tricky part. Do you think we should aim all the examples for the lowest possible profile?