Fixed remove and add callback so they properly handle nested callbacks
From Kristofer Tingdahl, with additions from Riccardo Corsi and Robert Milharcic, support for Qt5 build
Refactored the way the ReadResult/WriteResult lists are handled, with them now being sorted so that the Read/WriteResult with highest numerical value ReadStatus/WriteStatus is returned. 
Changed the enum order of ReadStatus/WriteStatus to ensure that the more relevant errors are last and with the highest numerical value
Fixed indentation
Introduced new osg::PatchParameter StateAttribute class to wrap up glPatchParameter associated state.  
Note, osg::Program::setParameter(GL_PATCH_VERTICES,num); is nolonger support and should be replaced by using the new PatchParameter class.
From Martin Naylor, replace osgDB::fstream with an osgDB::open() call.
Fixed TextBase::computeBound() so it take into account all corners of the text box thus ensuring proper handling of rotated text
Clean up up osg::Geometry, removing long deprecated support for array indices and BIND_PER_PRIMITIVE binding that forced OpenGL slow paths.  osg::Geometry is now smaller and only supports OpenGL fasts paths.
New methods osg::Geometry::containsDeprecatedData() and osg::Geometry::fixDeprecatedData() provide a means for converting geometries that still use the array indices and BIND_PER_PRIMITIVE across to complient
versions.

Cleaned up the rest of the OSG where use of array indices and BIND_PER_PRIMITIVE were accessed or used.
Removed experiment GeometryNew as it's no longer required.
Fixed order of binding.
Changed header guard back to original, and removed deprecated enum
Moved the set binding and normalize for VertexAttrib to after the VertexAttrib array assignment
Removed BIND_PER_PRIMITIVE reference
Moved the Geometry::set*Binding to after the set*Array() to prevent problems when using the deprecated functionality.
Moved the assignment of the normal binding to after the setNormalArray call
Added #define OSG_USE_DEPRECATED_GEOMETRY_METHODS usage into code to allow code to compile enen when CMake configuration has set the #define to off in include/osg/Config.
Build fixes for new deprecated osg::Geometry functions
From Jan Ciger, "I have found a problem when building OSG with Qt 5 support. Qt has the
following in the qopengl.h header:

# include <QtGui/qopengles2ext.h>
# ifndef GL_DOUBLE
#  define GL_DOUBLE GL_FLOAT
# endif
# ifndef GLdouble
typedef GLfloat GLdouble;
# endif

Unfortunately, when building for normal OpenGL (not GL/ES!) on Windows
with MSVC2012, GLdouble is not defined (it is not a macro but typedef)
and the code above produces a conflicting definition, making the
compile fail. I am attaching a bit hackish workaround for this problem
in osg/GL "
Converted tabs to four spaces
From Magnus Kessler, "gcc-4.8 flagged this:

src/osgUtil/tristripper/src/tri_stripper.cpp:375:40: warning: typedef
‘tri_node_iter’ locally defined but not used [-Wunused-local-typedefs]
  typedef triangle_graph::node_iterator tri_node_iter;
                                        ^
---
 src/osgUtil/tristripper/src/tri_stripper.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/osgUtil/tristripper/src/tri_stripper.cpp
b/src/osgUtil/tristripper/src/tri_stripper.cpp
index 2f5a7f3..3396881 100644
--- a/src/osgUtil/tristripper/src/tri_stripper.cpp
+++ b/src/osgUtil/tristripper/src/tri_stripper.cpp
@@ -372,7 +372,6 @@ inline tri_stripper::const_link_iterator
tri_stripper::BackLinkToNeighbour(const

 void tri_stripper::MarkTriAsTaken(const size_t i)
 {
-       typedef triangle_graph::node_iterator tri_node_iter;
        typedef triangle_graph::out_arc_iterator tri_link_iter;

        // Mark the triangle node"