Improve GLSL source program support

Old GLSL source program support in Vulkan framework was built on top
of glu::ProgramSources. This had two problems:

1) There was no obvious way to extend/annotate sources with SPIR-V
-specific information such as target SPIR-V version.

2) Most of glu::ProgramSources, such as attribute bindings or TF
configuration, was completely ignored.

This change introduces new vk::GlslSource type that replaces
glu::ProgramSources in vk::SourceCollections. vk::GlslSource contains
shader source strings as well as build options (vk::GlslBuildOptions).

vk::GlslBuildOptions doesn't currently contain anything useful but can
be later extended to support selecting target SPIR-V version for
example.

The change is mostly transparent to existing code, except:

 * vkSpirvProgram.hpp was somewhat unnecessarily including
tcuTestLog.hpp and changing that to a forward declaration required
fixing includes in several test code files.

  * vktShaderExecutor.cpp has been extended to allow specifying build
options.

Components: Vulkan

Change-Id: I69a6cd55ea91215585515b9d41860d818cbc97ae
diff --git a/AndroidGen.mk b/AndroidGen.mk
index ef0772e..d84fbf6 100644
--- a/AndroidGen.mk
+++ b/AndroidGen.mk
@@ -34,6 +34,7 @@
 	external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp \
 	external/vulkancts/framework/vulkan/vkDefs.cpp \
 	external/vulkancts/framework/vulkan/vkDeviceUtil.cpp \
+	external/vulkancts/framework/vulkan/vkGlslProgram.cpp \
 	external/vulkancts/framework/vulkan/vkGlslToSpirV.cpp \
 	external/vulkancts/framework/vulkan/vkImageUtil.cpp \
 	external/vulkancts/framework/vulkan/vkImageWithMemory.cpp \