Fix DataHandleHolderVisitor
When adding the extra input and output deps to an Algorithm's dependency tree, this was converting the DataObjID to a string, then back to a DataObjID, which has the effect of stripping the separation of ('ClassID','key') into 'ClassID/key', which screws up the ATLAS syntax.
Also, it's looping twice over the input/outputDataObjs(), adding the contents back to itself, which seem redundant, unless I'm missing something.
Also, the use of tuples is needlessly complicated, making the code much more difficult to comprehend. I don't think we're saving any CPU cycles this way (in fact I'm betting we're loosing a bunch in the creation of the tuple), and instead requiring an extra 15 lines of comments to explain what it's doing! The simple loops in the original version made the code much, much more readable.