Remove tuples recursively to handle Tuple(Tuple,...) case.
Remove tuples recursively to handle Tuple(Tuple,...) case.

This is necessary because the walker does not guarantee that all Projs
of the second Tuple are visited after we optimized the first Tuple.

davidgiven/libfirm,8l/libfirm,8l/libfirm,jonashaag/libfirm,libfirm/libfirm,MatzeB/libfirm,libfirm/libfirm,killbug2004/libfirm,MatzeB/libfirm,killbug2004/libfirm,davidgiven/libfirm,8l/libfirm,jonashaag/libfirm,libfirm/libfirm,killbug2004/libfirm,MatzeB/libfirm,libfirm/libfirm,jonashaag/libfirm,8l/libfirm,killbug2004/libfirm,davidgiven/libfirm,killbug2004/libfirm,davidgiven/libfirm,8l/libfirm,jonashaag/libfirm,killbug2004/libfirm,killbug2004/libfirm,jonashaag/libfirm,8l/libfirm,libfirm/libfirm,davidgiven/libfirm,8l/libfirm,davidgiven/libfirm,jonashaag/libfirm,davidgiven/libfirm,MatzeB/libfirm,MatzeB/libfirm,MatzeB/libfirm,MatzeB/libfirm,jonashaag/libfirm