Better fix for old GCC versions that give a conflict between IF token used for
parsing and a template in boost headers with the same name.
Add option to disable using embedded LLVM bitcode, in case building it with
clang++ is not possible for some reason. On by default except on Windows
where it was already disabled.
Clarify CC license of docs
Clean up spec, especially discussion of closures
Docs -- overhaul suggested metadata conventions to align with Katana.
CHANGES update
Rebuild spec PDF
Don't error/warn if metadata name masks a global scope name. Who cares?

This came up after the recent change in published metadata conventions --
we now recommend 'min' and 'max', which were generating spurious errors.
Change example shader metadata to conform to new recommendations.
And a couple other minor formatting or bug fixes.
Another fix for windows crash with FOREACH_PARAM, it was still accessing an
element beyond the end of the vector which could crash.
Add query_closure() to shadingsys
CHANGES
Bump versions now that we've branched 1.3
New ShadingSystem attribute "renderer_outputs" enumerates the renderer outputs
(AOVs) explicitly, so that elision of unused outputs can be done with
full understanding of which params will or will not be used.
Beware: if you use "opt_elide_unconnected_outputs", you MUST pass
"renderer_outputs" or your outputs may be eliminated!
Add a way to set arbitrary OSL options from the testshade command line
Middleman optimization

When you have 3 layers A, B, C, and connections A.aout -> B.bin and
B.bout -> C.cin, sometimes it turns out (either by design or after other
optimizations) that B simply unconditionally copies bin to bout.  This
optimization notices this case and "eliminates the middle-man" by
directly connecting A.aout to C.cin if the types are compatible.  This
allows even more optimization since B.bout is no longer connected to
anything, and it may even lead to elimination of the B layer entirely.
Layer-to-layer global propagation

We were already good at noticing that a connected parameter's upstreadm
output is guaranteed to be a constant, and then replace the downstream
parameter with that constant (no longer needing the connection at all).

Now we also add logic to notice cases where the upstream output is
guaranteed to be assigned a global variable (such as N or u), and
we can alias the downstream parameter to that global, just as if it
was assigned the global as a default argument in the same shader (also
no longer needing the connection at all).
Fix test reference output
Be less conservative about constant propagation from layer to layer.
It used to do so if the output of the earlier layer was never used in the
upstream layer; I suspected that it's only important for it to never be
written, of course who care if it's read by the upstream layer.  Looks like
this change doesn't break anything, while increasing the number of
connections it can remove by constant propagation.

But, also, DO make sure it's not a parameter that can be overridden by
geometry. I think that might have been a latent bug.
Merge pull request #236 from lgritz/lg-middleman

Layer/connection simplification improvements