connstr: allow mixed port/no-port combinations

Each host gets its own type, so it's no longer an issue if there are
mixed hosts and ports. Previously it would be an all or nothing explicit
_or_ implicit port.

Change-Id: I3f3db6906ef56538a36eff557f3f50ba6aabfde0
Reviewed-on: http://review.couchbase.org/38812
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Brett Lawson <brett19@gmail.com>