SF 557704: netrc module can't handle all passwords

Expanded the range of allowable characters to include ascii punctuation.
Allows resource files to have a larger character set for passwords.
(Idea contributed by Bram Moolenaar.)
diff --git a/Lib/netrc.py b/Lib/netrc.py
index 316a66c..1d65dbe 100644
--- a/Lib/netrc.py
+++ b/Lib/netrc.py
@@ -30,8 +30,7 @@
         self.hosts = {}
         self.macros = {}
         lexer = shlex.shlex(fp)
-        # Allows @ in hostnames.  Not a big deal...
-        lexer.wordchars = lexer.wordchars + '.-@'
+        lexer.wordchars += r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
         while 1:
             # Look for a machine, default, or macdef top-level keyword
             toplevel = tt = lexer.get_token()