Bug fix with instance merging -- never merge the group entry layer.

It turns out that it's a bad idea to do "instance merging" of the last
layer, also known as the "group entry" layer. It's very rare that the
circumstances would lead to it in any real world shader groups, but I
ran across it in a contrived layered example (with two layers of the
same shader master, no connections, same instance parameter values, no
outputs used) The bottom line is that the group entry layer must
generate a proper LLVM function, and having it marked as "unused"
because of merging leads to a cascade of hard-to-understand errors.
Allow renderer outputs to be specified as "layer.param".

This allows you to designate a named output to be a "renderer output"
(thus immune from unused output elision, among other things) only if it
is part of a particular layer, if you so desire. Of course, you can just
give a plain unqualified name, too, which would designate ANY outputs of
the same name (in any layer) as being so preserved, as it always has
worked.

As an example, this may come in handy if you have shader group where a
bunch of the instances have output parameters named "Cout", but only a
particular one is designated as needing to be queried by the renderer
after shader execution (so the others may be free to be optimized away).

Because this makes the instance->is_renderer_output() test much more
expensive (because it needs to concatenate the string), we also refactor
slightly so the "is it an output" test is done just once for each
instance param at the start of runtime optimization, the result stored
in a bit in the Symbol struct, so can be very easily tested the zillions
of times the optimizer may need to know.