A dirty (but useful) hack to decode thread offsets in disassembly.

Plus more readable x86 formatting.

Also fix a bug decoding LDR (immediate, Thumb) encoding T1.

Change-Id: I95c79d3fb4d912d1ef386b5843abd37d3652a476
diff --git a/src/disassembler_x86.cc b/src/disassembler_x86.cc
index d7ee80b..48074b8 100644
--- a/src/disassembler_x86.cc
+++ b/src/disassembler_x86.cc
@@ -399,11 +399,11 @@
     }
     args << StringPrintf("%d (%p)", displacement, instr + displacement);
   }
-  os << StringPrintf("\t\t\t%p: ", begin_instr);
+  std::stringstream hex;
   for (size_t i = 0; begin_instr + i < instr; ++i) {
-    os << StringPrintf("%02X", begin_instr[i]);
+    hex << StringPrintf("%02X", begin_instr[i]);
   }
-  os << StringPrintf("\t%-7s ", opcode.str().c_str()) << args.str() << std::endl;
+  os << StringPrintf("\t\t\t%p: %22s    \t%-7s ", begin_instr, hex.str().c_str(), opcode.str().c_str()) << args.str() << '\n';
   return instr - begin_instr;
 }