Python API: Add enum and union support.

As well as a rewrite of the encoders/decoders to make it more readable and extensible.
(Re-commit after fix to verify build.)

Change-Id: Ic244d3cebe070bb2570491f8a24f4a1e203f889a
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/vpp-api/python/setup.py b/src/vpp-api/python/setup.py
index abda43d..d97e35f 100644
--- a/src/vpp-api/python/setup.py
+++ b/src/vpp-api/python/setup.py
@@ -13,21 +13,21 @@
 # limitations under the License.
 
 try:
-    from setuptools import setup
+    from setuptools import setup, find_packages
 except ImportError:
-    from distutils.core import setup
+    from distutils.core import setup, find_packages
 
-setup (name = 'vpp_papi',
-       version = '1.4',
-       description = 'VPP Python binding',
-       author = 'Ole Troan',
-       author_email = 'ot@cisco.com',
-       url = 'https://wiki.fd.io/view/VPP/Python_API',
-       python_requires='>=2.7, >=3.3',
-       license = 'Apache-2.0',
-       test_suite = 'tests',
-       install_requires=['cffi >= 1.6'],
-       py_modules=['vpp_papi'],
-       long_description = '''VPP Python language binding.''',
-       zip_safe = True,
-)
+setup(name='vpp_papi',
+      version='1.5',
+      description='VPP Python binding',
+      author='Ole Troan',
+      author_email='ot@cisco.com',
+      url='https://wiki.fd.io/view/VPP/Python_API',
+      license='Apache-2.0',
+      test_suite='tests',
+      # Add when we don't need to support 2.7.5
+      # 'enum34;python_version<"3.4"'],
+      install_requires=['cffi >= 1.6', 'enum34'],
+      packages=find_packages(),
+      long_description='''VPP Python language binding.''',
+      zip_safe=True)