SConstruct : Pass `--no-undefined` to linker on Linux
SConstruct : Pass `--no-undefined` to linker on Linux

This causes undefined symbols to be reported at link time rather than later at runtime. We've seen some strange behaviour (reported in #4587) whereby undefined symbols in a module can cause Python to crash during import, without reporting the underlying problem. This makes debugging hard.

Doing this reveals several libraries we should have been linking in but weren't, so they are also added : `pthread`, `python`, `GLX` and `dl`.

Closes #4587. Note that we are _not_ adding the requested definitions for pure virtual functions, as they are intentionally undefined and would not have sensible default implementations in all cases. Our recommendation would be that Gaffer extensions are also built with `--no-undefined` instead.

SConstruct : Fix linking of VTune libs

hradec/gaffer,GafferHQ/gaffer,andrewkaufman/gaffer,andrewkaufman/gaffer,GafferHQ/gaffer,GafferHQ/gaffer,johnhaddon/gaffer,andrewkaufman/gaffer,hradec/gaffer,hradec/gaffer,GafferHQ/gaffer,johnhaddon/gaffer,johnhaddon/gaffer,andrewkaufman/gaffer,hradec/gaffer,andrewkaufman/gaffer,GafferHQ/gaffer,johnhaddon/gaffer,hradec/gaffer,johnhaddon/gaffer