Cycles: remove approximate subdivision surface with gregory patches code.

It was never fully implemented and will be replaced by OpenSubdiv. Only linear
subdivision remains now. Also includes some refactoring in the split/dice code,
adding a SubdParams struct to pass around parameters more easily.
Cycles: add ptex face ID and UV attributes.

Not the most memory efficient way to store these things but it's simple and
implementing it better requires some work to natively support subd grids as
a primitive in some way.
Cycles: experimental OSL ptex reading code.

This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
Cycles: experimental OpenSubdiv code.

This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
View3D: split camera controlling parts of fly mode into their own functions
Testing: added check for broken links to wiki docs
error in last commit
Carve bundler script cleanup

- random.hpp was only removed from actual include
  directory, but not from patches/files.

- Files list generator didn't ignore config.h file
  which in fact is not needed.
Update Carve to upstream version be054bc7ed86
Fix Carve compilation on FreeBSD

Based on the patch from Marcus von Appen, thanks!
Fix T37143: Wrong normal dir with individual origins + one vert selected
Transform: improve normal orientation

- when 3 verts are selected ensure the normal is flipped on the side of existing vert normals.
  also use the most distant 2 verts to define the tangent.

- when 2 vertices are selected, the normal wasn't aligned with the vert normal.
Update Ceres to latest upstream version

- A richer Problem API.
- DynamicNumericDiffCostFunction.
- Faster ITERATIVE_SCHUR solver.
- Faster SCHUR_JACOBI preconditioner.
- Faster Jacobian evaluation.
- Faster visibility based preconditioning using single linkage clustering.

Also re-wrote rules for unordered collections detection,
should work on all platforms and compilers now :)
Remove debug prints from SCons' python module

Seems to be left by accident in rB9a79e03752509997e99094763f9183e6e5ce3637

If not, please do prints more verbose :)
CMake/Scons Build: disable explicit linking to libstdc++ on Linux/Unix.

It's not needed, this should happen automatically already, and if you build
against libc++ instead (as on recent FreeBSD), this would give build errors.

Ref T37477.
Made collections port compatible with MSVC2008

The issue was caused by the fact that in this version
of MSVC unordered_map class is defined in <unordered_map>
header file, but this file declares the class int std::tr1
namespace.

This confused existing assumption that if there's an
existing <unordered_map> file then class is declared
in std namespace.

Added an extra check to CMake which detects whether
it's std or std::tr1 which actually contains class
of unordered_map.

This might be changed/cleaned in the future, for
now committing to our repository to solve compilation
error on windows.

Details of the patch in upstream can be found there:

  https://ceres-solver-review.googlesource.com/#/c/4371/