title: Get info string from scapy packet
body: <p>I am using scapy 2.3.1-dev non-interactively (i.e. as a library) in a tool I am building. I would like to get a string of human-readable information about a packet, such as you get from <code>scapy.all.Packet.show()</code>. I have tried using all three of the methods (<code>packet.show()</code>, <code>packet.show2()</code> and <code>packet.display()</code>) that provide the info, but none of these return anything, instead they print out the information that I want. </p>
  
  <p>Also, the information returned by <code>packet.__repr__()</code> is not quite enough. </p>
  
  <p>Are there any functions/methods that would return the nicely-formatted text the same way that e.g. <code>packet.show()</code> prints them? If not is there some way of capturing/intercepting the output of <code>show()</code>, before it gets printed to the console?</p>
  
  <p>I am aware that I can do my own string formatting, using the info from <code>packet.fields</code>, but I am trying to avoid having to do that. </p>