qt_add_shaders: support reusing a source across invocations
Using the same shader source in multiple qt_add_shaders() calls used to
generate identical intermediate .qsb output paths, causing custom
command output clashes.
Generate intermediate outputs under .qsb/<resourcename>/... so each
qt_add_shaders() invocation writes to a distinct location.
Also detect resource alias collisions (same PREFIX + alias on the same
target) and warn, because loading both resources at runtime can shadow
one shader with another.
Add a buildtimeqsb test that compiles the same source in two different
qt_add_shaders() calls with different PREFIX values and verifies both
resources are loadable.
Change-Id: I3f3abc776c01163f869d946cf4125726d7f3e2c9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>