Build both Python 2 and Python 3 bindings

This replaces #2912 and potentially #3040 by @vpisarev.

I have once again updated my branch with master.  To address @vpisarev's concerns about module naming conflicts, the generated library is placed inside of a dedicated folder inside of lib/.  This way, there can be no naming conflicts.

As an aside, it looks like the Buildbot machine needs some upgrades to properly test these changes.  The Linux machine appears to be missing the necessary Python 3 Numpy packages.  The Windows and Mac machine appear to be missing Python 3 altogether.