Use a single pyexec() utility function to fix compatibility issues

While the current setup (where 2.x uses the exec statement and 3.x uses the
exec() function) works at run-time, it causes problem while byte-compiling
the util modules for their non-appropriate interpreter versions:

File "/usr/lib64/python2.7/site-packages/couchdb/util3.py", line 17
  pyexec = exec
              ^
SyntaxError: invalid syntax

File "/usr/lib64/python3.3/site-packages/couchdb/util2.py", line 19
  exec code in gns, lns
          ^
SyntaxError: invalid syntax

There doesn't appear to be an easy way to exclude some files from installation
based on the installing Python version, but it turns out the 2.x exec
statement can also take its arguments as a tuple, such that the 2.x and 3.x
versions can be used with the same syntax.

However, Python 2.7 has a bug (#21591) that prevents this from working in the
context we use exec in (in a function that also contains a nested function),
due to a bad implementation that enables the arguments-as-tuple functionality.
We thus need a helper function after all, to pull it out of that context.