packet.tcp: Re-pack unknown options

Previously, unknown options were ignored when re-packing them.  We now
attempt to re-pack them as-is.
packet.tcp: Adjust indenting

Conform to POX indentation guidelines.
packet.tcp: Improve formatting, etc.

This improves/adds some documentation, cleans up some minor formatting
issues, and makes tcp_opt a new-style class (which hopefully won't have
any unintended side-effects).
packet.tcp: Change tcp_opt.to_bytes() to pack()

This is more consistent with everything else.
packet: Fix IPv6 address with DNS

Thanks for the issue report by Curtis Taylor today on pox-dev.