Fix Python 3.4 cpp implementation

Fixes the ScalarMapContainer/MessageMapContainer implementations on
Python 3.4, by dynamically allocating their PyTypeObjects using
PyType_FromSpecWithBases, instead of statically allocating them. This is
necessary because Python 3.4+ disallows statically allocating a class
with a dynamically allocated parent.

Signed-off-by: Dan O'Reilly <oreilldf@gmail.com>
diff --git a/travis.sh b/travis.sh
index a5208fe..b4a908d 100755
--- a/travis.sh
+++ b/travis.sh
@@ -113,12 +113,14 @@
 
 internal_install_python_deps() {
   sudo pip install tox
-  # Only install Python2.6 on Linux.
+  # Only install Python2.6/3.x on Linux.
   if [ $(uname -s) == "Linux" ]; then
     sudo apt-get install -y python-software-properties # for apt-add-repository
     sudo apt-add-repository -y ppa:fkrull/deadsnakes
     sudo apt-get update -qq
     sudo apt-get install -y python2.6 python2.6-dev
+    sudo apt-get install -y python3.3 python3.3-dev
+    sudo apt-get install -y python3.4 python3.4-dev
   fi
 }
 
@@ -127,9 +129,9 @@
   internal_build_cpp
   internal_install_python_deps
   cd python
-  # Only test Python 2.6 on Linux
+  # Only test Python 2.6/3.x on Linux
   if [ $(uname -s) == "Linux" ]; then
-    envlist=py26-python,py27-python
+    envlist=py\{26,27,33,34\}-python
   else
     envlist=py27-python
   fi
@@ -143,9 +145,9 @@
   export LD_LIBRARY_PATH=../src/.libs # for Linux
   export DYLD_LIBRARY_PATH=../src/.libs # for OS X
   cd python
-  # Only test Python 2.6 on Linux
+  # Only test Python 2.6/3.x on Linux
   if [ $(uname -s) == "Linux" ]; then
-    envlist=py26-cpp,py27-cpp
+    envlist=py\{26,27,33,34\}-cpp
   else
     envlist=py27-cpp
   fi