Merge r30416:30527 from /nmap-exp/david/ipv6-ranges.

This is a refactoring of target parsing that stores different types of
target specifications as different classes. The eventual intention is to
allow easy iteration over each specification for the purpose of IPv6
multicast host discovery.
CHANGELOG a side effect of target refactoring: mixed IPv4 ranges and netmasks.