docs: ociobakelut, Photoshop ICC, looks

- Various examples of using ociobakelut
- Upsettingly convoluted guide to making a "display LUT" for Photoshop
- Committing Jeremy's guide to Looks (closes #201)
docs: fixed ocio spelling
nuke: minor tweak internals to work around valgrind memcpy warning
docs: skeleton docs for python api, and general docs cleanup

created new approach to extract rst from source code.

This one is more braindead, using a /*+doc tag. But the verbosemess also makes
the approach more general, support all possible rst tags
core: OCIO::SetLoggingLevel(...) is now obeyed when called before initialization
core: fixed compilation error on clang
core: first pass at internal optimization framework

The internal image-procesing ops now go through a simple optimization
framework as part of Processor creation. In this first code pass, ops
that are exact inverses of their neighbors cancel out and are removed.

But the most interesting consequence is that this allows for transforms
which were not previously possible:

Say you have 2 colorspaces: A and B.  Both of these these colorspaces
apply the same 3D lut, but B then also applies an additional matrix.

Previously, it would not have been possible to compute the processor
to go directly from A to B because an inverse 3d lut is needed.
old op chain:   LUT3D (inv) -> LUT3D (forward) -> matrix

However, the new optimizer will detect that the same 3dlut is being
applied in a row in both an inverse and forward direction, and they
will cancel out! (This works even if the nesting is deep.)

new op chain: matrix

Subsequent additions to the optimizer will allow for matrix collapsing, etc.
docs: additional updates to python API docs
bump
unittest: disable serialization check that temp fails on osx
Added OCIOFindJava that supports finding the current Java version on OSX
Added initial Manifest.txt.in to be included in .jar
Added .jar creation stage
Added install targets for JNI lib and .jar archive
.jar file now gets installed in share/java/OpenColorIO-$VERSION.jar
leaned up JNI Library loading so its a bit more robust
Moved JNI System.loadLibrary into a central LoadLibrary class
JNI now builds with SOVERSION
Install jar into share/ocio
Add OCIO_STATIC_JNIGLUE option (default to ON)
ocioconvert: pass arbitrary attributes to OIIO

Adds --float-attribute, --int-attribute, --string-attribute

Useful for reducing bitdepths/image quality settings from the maximum.
bump
docs: pyglue / pydocs revamp

Added __doc__ strings to python binding
Sphinx now uses the autodoc ext to build the py docs
Added Quick Search bar to sidebar
Little bits of doc cleanup
renamed buildPyDocH.py to createPyDocH.py as .gitignore doesn't like it
nuke: ociolook transform gets reload button

Addresses issue #188
core: added 'best' interpolation type

Also, specifying tetrahedral interpolation for lut1d throws an exception rather
than silently skipping lut application.

Addressed issue #217

The naming for 'BEST' was chosen (instead of alternatives such as HIGHEST or
SMOOTHEST) precisely as the ambiguity allows us a bit of freedom in which
interpolation method to use. Consider a 3d lut. Which is 'smoother'? Tetrahedral
or tri-linear? Both are smoother in certain combinations of input luts / image
content.  Thus, by use the intentially ambigious term 'best' we can punt on
these issues.

Of course, should eventually we add support for a cubic 1d interpolation type,
we will switch 'best' be CUBIC at that time.
nuke: updated rollover text
docs: updated compatible software +nuke