Fix logic for parsing port number out of string (Issue #169)

New logic is: 
1. If the string starts with a colon, it must be port number only.
 2. If the string consists ENTIRELY of digits, and it converts to a
    valid TCP/UDP port number, assume it's only a port number.
 3. Otherwise, parse it as a hostname with a possible ":port" suffix.