Error handling for bad column names in named tuple

PYTHON-122

Emit warning with workarounds when named_tuple_factory is used with
result column names that can't be used in namedtuple.
Try to return results with renamed, positional column names.
It's generally a bad idea to use ``except`` without any qualification, as it will catch things like KeyboardInterrupt and SystemExit.  Use ``except Exception`` instead.