BitcodeWriter: Emit metadata in post-order (again)

Emit metadata nodes in post-order.  The iterative algorithm from r266709
failed to maintain this property.  After understanding my mistake, it
wasn't too hard to write a test with llvm-bcanalyzer (and I've actually
made this change once before: see r220340).

This also reverts the "noisy" testcase change from r266709.  That should
have been more of a red flag :/.

Note: The same bug crept into the ValueMapper in r265456.  I'm still
working on the fix.

llvm-svn: 266947
diff --git a/llvm/test/Bitcode/metadata-function-blocks.ll b/llvm/test/Bitcode/metadata-function-blocks.ll
index 7b335f7..f3e83c5 100644
--- a/llvm/test/Bitcode/metadata-function-blocks.ll
+++ b/llvm/test/Bitcode/metadata-function-blocks.ll
@@ -19,14 +19,14 @@
 ; Each node gets a new number.  Bottom-up traversal of nodes.
 !named = !{!6}
 
-; CHECK-NEXT:   <NODE op0=2/>
-!4 = !{!"named and foo"}
-
 ; CHECK-NEXT:   <NODE op0=1/>
-!5 = !{!"named"}
+!4 = !{!"named"}
 
-; CHECK-NEXT:   <NODE op0=1 op1=5 op2=4/>
-!6 = !{!"named", !5, !4}
+; CHECK-NEXT:   <NODE op0=2/>
+!5 = !{!"named and foo"}
+
+; CHECK-NEXT:   <NODE op0=1 op1=4 op2=5/>
+!6 = !{!"named", !4, !5}
 
 ; CHECK-NEXT:   <NODE op0=3/>
 !7 = !{!"foo and bar"}