This adds support for a "parse_all_hops=False" option to Traceroute.init which will start at the last hop, and work backwards only as long as is necessary to fill in the various Traceroute-level attributes, such as last_hop_responded, destination_ip_responded and last_median_rtt. This is useful for cases when we don't need access to the actual hops, because it saves on a lot of object initialization for all of the extra Hop and Packet objects.
The request also removes the use of IPy to compare the intended destination address with the origin reported in the last hop, because these should always be in canonical form. I spoke with @PhilipHomburg who says he would consider it a bug if there was ever a difference in IPv6 address representation within the traceroute results.