Cleanup code to retrieve shader compilation log.

It was using vector unnecessarily, since it doesn't need dynamic
resizing. I changed it to allocate a good old array with new[],
but using unique_ptr to manage its lifetime.