Add threadID to packets

The packets are created by CPU and passed down to the memory. ThreadID is
added to the packet so that the memory system knows which thread the packet
comes from. It works for both timing and o3 CPUs