BGE: remove freestyle from stubs, all functions were out of use
Fix T37673: Ray casting could fail with 0 collision margins

Use bullet's old method of doing ray casts to stay compatible with old
files. It's faster but a bit less accurate.
Change libavcodec CODEC_ID_* to AV_CODEC_ID_*

CODEC_ID_* have been replaced with AV_CODEC_ID_* in new libavcodec
versions.

Update the code to use those new identifiers.

Added a compatibility code to ffmpeg_compat.h
libavcodec API usage: use new video encoding API

avcodec_encode_video() has been replaced with avcodec_encode_video2()
in new libavcodec versions.
libavformat API usage: use avg_frame_rate instead of r_frame_rate

r_frame_rate is a guessed number defined as "the least common multiple of
all framerates in the stream". It has been deprecated and removed in new
Libav releases.

Use avg_frame_rate instead, which is the average framerate of the
stream.
libavformat API usage: use avformat_close_input() instead of av_close_input_file()
audaspace: use new libavcodec audio encoding API where available
Code cleanup: indentation of interior preprocessor
Code cleanup: more preprocessor indentation
Compilation fix for SCons

Was broken by recent FFmpeg changes.
Rework detector API and implement Harris detector

Switch the detector API to a single function which accepts
a float image and detector options. This makes usage of
feature detection more unified across different algorithms.

Options structure is pretty much straightforward and contains
detector to be used and all the detector-specific settings.

Also implemented Harris feature detection algorithm which
is not as fast as FAST one but is expected to detect more
robust feature points. It is also likely that less features
are detected, but better quality than quantity.

Blender will now use Harris detector by default, later we'll
remove FAST detector.
Theme: update ubuntu and blender2.4x tab colors
Fixes for keyframe selection

Using tracks with constant zero weight used to crash
keyframe selection since it was trying to use missing
parameter blocks for Jacobian evaluation,

Also fixed possible issues with wrong camera block being
marked as variable. This could technically happen when
having zero weighted tracks. Made it so all camera blocks
are marked as variable for now.
Improvements to weighted tracks behavior

First thing changed by this commit is making it so
Euclidean intersection takes track weight into account
when solving minimization problem. This behaves the
same exact way as it is for BA step.

Second thing is related on how average reprojection error
is being calculated. It didn't take track weight into
account which could confuse users. Now average reprojection
error will give the same result as intersection/BA uses
during minimization which gives much more predictable
behavior.

Differential Revision: https://developer.blender.org/D265
Code cleanup: remove references to svn and code style
Followup to the previous commit

Need to take weight into account when drawing per-frame track
reprojection curve and when computing per-track average error.
Bevel code cleanup: get rid of old 'ADJ' code.

The new subdiv 'adj' pattern is working well, so removing the
old code and taking opportunity to remove 'subdiv' from a number
of names.
Bundle latest Libmv from upstream

Currently no functional changes, but we might want
to have scoped_array in the future.
Reorganized the Freestyle Python API in a hierarchical package structure.

Both C- and Python-coded API components were rearranged into logical groups.
New Python modules are packaged as follows:

freestyle - Top-level package
freestyle.types - Classes for core data structues (e.g., view map)
freestyle.chainingiterators - Pre-defined chaining iterators
freestyle.functions - Pre-defined 0D and 1D functions
freestyle.predicates - Pre-defined 0D and 1D predicates
freestyle.shaders - Pre-defined stroke shaders
freestyle.utils - Utility functions

The Python modules are installed in scripts/freestyle/modules.  Pre-defined
styles are installed in scripts/freestyle/styles.

To-do: update styles according to the new Freestyle API package structure.
Updated Freestyle API modules according to the new hierarchical package structure.

Additional bug fixes were also done along with the code updates:
* Fix for the use of old Interface1D.pointsBegin() and .pointsEnd() method names
in the definition of pyDensityAnisotropyF1D and pyViewMapGradientNormF1D.
* Fix for wrong data types (int instead of bool) for:
- pyChainSilhouetteGenericIterator constructor and its .orientation property in
modules/freestyle/chainingiterators.py.
- SpatialNoiseShader constructor in styles/external_contour_sketchy.py.
- ChainSilhouetteIterator constructor in styles/multiple_parameterization.py.