Rearchitecting to remove ARGV from spec scope. Split out PortScan class.