Rederived Box from DependencyNode.

Also implemented enabledPlug() and correspondingInput() to allow users to define enabled/disabled behaviours.

This breaks binary compatibility.

Fixes #1015.
Added UI for setting up Box pass-through behaviour.
Merge pull request #1020 from johnhaddon/boxDependencyNode

Box derived from DependencyNode