Fixing bug of infinite instantiation of Ops due to knob changes during validate method.

The previous code was forcing changes in the selection knobs for instances of the Op triggered by Nuke during evaluation of nodes. The validation for each instance was modifying the knobs, which would trigger more instantiations.
The solution was to use the Op::firstOp() method which returns the pointer to the main instance, and make sure we call the knob-updating methods only from that instance.
Merge pull request #259 from ldmoser/nukeSceneReaderFix

Fixing infinite instantiation of SceneCacheReader Ops
Test compile fixes.

 - For Ubuntu 13.04 - gcc 4.7.3
 - For Linux Mint 16
Fixing testCore output re-direct.

OS specific problem (Ubuntu). This works on CentOS, but is a slight change from the original commit provided by Ben.

See here for details:
http://blog.stefan-weigand.de/2008/09/23/syntax-error-bad-fd-number/index.html

Fixes #51
Removed the inverse function form ColorTransform.h and SpaceTransform.h.

The inverse function was causing Cortex to not build on Linux Mint 16.
Fixes to get IECoreNuke to compile.

Fixes #258
Merge pull request #260 from andrewkaufman/propersquid-feature/UpdatingForMint

Updating for Mint and Ubuntu
Bumped patch version and updated changes
Fixing previous change on the firstReader() implementation.

Some of the functions in the class (hash functions and geometry compute) were using data that was not coming from the firstReader, leading to crashes.

In order to solve the problem and prevent future ones, I've isolated all the member functions that should be shared into a private class that only the firstReader allocates.
Also, all the member functions that are supposed to be used only by the firstReader have an assert() statement to document it.
Lastly, during this process I've realized that some of the data variables that are linked to the knobs were being overwritten during the knob_changed() function, which would create disparity to the non-firstReader instances. So I've created additional ones in the shared data.
Several fixes and some reengineering.

- Realized that Nuke calls knob_changed() and then, Op::append() and the shared Data values were being used causing inconsistent Hash computation. Now the append() function uses refreshed information based on knob values.
- Prevent doing any computation on the knob_changed while the script is being loaded, and forces it at the end with the call to validate().
- Realized that the existence of a "root" knob prevents the file knob to have a TCL expressions such as [file dirname [value root.name] ]. So, renamed the knob to "sceneRoot". This causes warnings while loading previous Nuke scripts, but all the other knobs are loaded fine. The default value "/" is the only one used at IE and this change should not break scripts.
- The changes in file and root attempt to keep selection by using the method loadAllFromKnobs().
- The knob_changed callback is not necessarily called by Nuke. There's some caching mechanism that prevents that from happening. the Op::append() on the other hand is reliable, so we stopped baking the selection list during knob_change and force it's recomputation in append().
- Eliminated some redundant hash values ( sceneHash and scene file for example).
- Optimized loadAllFromKnobs() in preventing two calls to filterScene.
- Using DD::Image::root_real_fps() instead of the hard coded 24fps in the computation of time.
- Using error(msg) function in getSceneInterface to show in the Viewer when geo cannot be loaded (either the file does not exist of the root is invalid).
Adding a unit test module for SceneCacheReader.
Merge pull request #261 from ldmoser/nukeSceneReaderFix2

Fixing and revamping SceneCacheReader for Nuke
Update Changes
Update SConstruct