Fixed Box creation with nested connected plugs.

We were only iterating over the top level plugs when finding the plugs to reroute via the Box, so weren't picking up nested plugs such as shader parameters. We now use a RecursivePlugIterator to make sure we iterate to the nested plugs, and after finding connected plugs we prune the iteration to avoid visiting their children, which will already have been promoted and connected when their parent was.