Added pyglue test suite which mimics the jniglue one
Added GpuShaderDesc python type
Added Baker python interface
Moved many headers into PyUtil.h
Replaced try/catch blocks with OCIO_PYTRY_ENTER() OCIO_PYTRY_EXIT(foo) macro
Added function AddObjectToModule()
Fixed todo about PyErr_NewExceptionWithDoc for python2.7
Added template struct PyOCIOObject for all OCIO types
Added PyOCIO_GpuShaderDescType
Added PyOCIO_BakerType
Added template BuildConstPyOCIO() function
Added template BuildEditablePyOCIO() function
Added template BuildPyObject() function
Added template BuildPyTransformObject() connivence function
Added template DeletePyObject() function
Added IsPyOCIOType() function
Added template IsPyEditable() function
Added template GetConstPyOCIO() function (no DynamicPtrCast)
Added template GetConstPyOCIO() function
Added template GetEditablePyOCIO() function (no DynamicPtrCast)
Added template GetEditablePyOCIO() function
Added following extra python interfaces:
  AllocationTransform().getNumVars()
  CDLTransform().CreateFromFile(src, cccid)
  Config().CreateFromStream(istream)
  Config().getNumColorSpaces()
  Config().getColorSpaceNameByIndex(index)
  Config().getIndexForColorSpace(name)
  Config().isStrictParsingEnabled()
  Config().setStrictParsingEnabled(enable)
  Config().getNumRoles()
  Config().hasRole(role)
  Config().getRoleName(index)
  Config().getNumDisplays()
  Config().getDisplay(index)
  Config().getNumViews(display)
  Config().getView(display, index)
  Config().getNumLooks()
  Config().getLookNameByIndex(index)
  Context().getNumStringVars()
  Context().getStringVarNameByIndex(index)
  FileTransform().setInterpolation(interp)
  FileTransform().getNumFormats()
  FileTransform().getFormatNameByIndex(index)
  FileTransform().getFormatExtensionByIndex(index)
  Look().getInverseTransform()
  Look().setInverseTransform(transform)
  MatrixTransform().equals(matrix)
Added following extra java interfaces:
  Baker.setLooks()
  Baker.getLooks()
Added CTest add_test()s for core, pyglue and jnitests for use with travis-ci
Merge pull request #310 from malcolmhumphreys/master

pyglue refactor and test suite
* removed includes for missing PyConfig.h in PyConfig.cpp and PyMain.cpp
Added Python3 support to pyglue
Updated python dependencies for the doc system
olve ENV var before testing for relative/abs paths

fixed a bug where abs environment vars would not be correctly expanded before checking if they are abs in Context::resolveFileLocation()
Added the ability to explicitly declare config envvars

eg.
--snip--
ocio_profile_version: 1
environment:
  SHOW: super
  SHOT: test
  SEQ: foo
  test: bar${cheese}
  cheese: chedder
...
--snip--

ABI Changes:
- added Config::addEnvironmentVar(const char * name, const char * defaultValue)
- added Config::getNumEnvironmentVars()
- added Config::getEnvironmentVarNameByIndex(int index)
- added Config::getEnvironmentVarDefault(const char * name)
- added Config::clearEnvironmentVars()
- added EnvironmentMode enum
- added EnvironmentModeToString(EnvironmentMode mode)
- added EnvironmentModeFromString(const char * s)
- added Context::clearStringVars()
- added Context::setEnvironmentMode(EnvironmentMode mode)
- added Context::getEnvironmentMode()

Other Changes:
* added Environment Mode to the Context cache (updated tests to match)
* added pythonic config.getEnvironmentVarDefaults() which returns a dict
* added CreatePyDictFromStringMap() to PyUtill
* added test_is_editable to Config python unit test
* python test suite now returns a error return code when a test fails to work with ctest

Notes:
* old profiles are supported which still load the entire environment, this is disabled as soon as you define an 'environment:' section.