Bullet: better workaround for failing friction with clang 3.4, remove the obsolete compileflag magic
BGE - button for deactivate sensors, controllers and actuators

This change introduces a new checkbox to deactivate the sensors, controllers and/or actuators. It is useful during the development phase to avoid delete sensors, controllers or actuators if you want to test something new.

NOC: The wiki page is being updated (the images mostly), but the feature is already in the 2.71 release log.

{F61628}

Reviewers: moguri, dfelinto, campbellbarton, dingto, #user_interface, billrey

Reviewed By: moguri

CC: billrey

Differential Revision: https://developer.blender.org/D16
Fix T39768: GLOBAL_X/Y/Z don't exist for bpy.ops.armature.calculate_roll type enum
Fix T39767: Parent in Mask mode crashes
Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 1).

The issue was caused by including both Python.h and BLI_math.h.  Since the macro
definition in Python.h was unconditional, it was necessary to include it first and then
BLI_math.h.

Addressing the issue turned out to affect many Freestyle source files.  There were several
other coding flaws that complicated the situation:

1. intern/system/FreestyleConfig.h was abused just to include BLI_math.h which was in
fact unnecessary in FreestyleConfig.h.  While addressing this, inclusion of both math.h
and BLI_math.h had to be duly dealt with to avoid a compiler error about round().

2. #include <Python.h> was not properly put in the extern "C" { ... } construct.

3. intern/view_map/Interface0D.h and intern/python/Director.h, both of which included
Python.h, were included from within Freestyle header files that were almost or completely
independent of Python.  These non-Python header files were used everywhere in the
Freestyle code base, causing many cases of the reported macro redefinitions.

4. The Director.h file was also declaring 'using namespace Freestyle', which was causing
another scope issue in several Freestyle header files.

This commit is intended to address the first problem above.  Subsequent commits will deal
with the other three.
Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 2).

(See commit e1771e72fbbf828dbf5bed871b814288389f3611 for more detail of
the problem).

Fixed for #include <Python.h> not properly put in the extern "C" { ... } construct.

Also removed redundant inclusion of the header file in the Freestyle Python API code.
Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 3).

(See commit e1771e72fbbf828dbf5bed871b814288389f3611 for more detail of
the problem).

Made changes to intern/view_map/Interface0D.h and intern/python/Director.h to
avoid #include <Python.h> and keep non-Python header files independent of it.
Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 4).

(See commit e1771e72fbbf828dbf5bed871b814288389f3611 for more detail of
the problem).

Fix for a C++ scope issue caused by 'using namespace Freestyle' that was assumed
even within the Freestyle namespace definition.
Freestyle: removed unnecessary #include files and made minor code cleanup.
Replaced assert() with BLI_assert().
Fix for missing changes in commit 6b0b6f876a4d68acd5c9252270a5135d0308d782.
Freestyle: removed unused *_EXPORT qualifiers for building Windows DLLs.

These qualifiers were leftovers of the stand alone Freestyle program and not used
(set to an empty string) in Blender for years.
Freestyle: removed unnecessary #include "FreestyleConfig.h".
Code cleanup: use bools

also rename BLI_omp_thread_count -> BLI_system_thread_count_omp
Viewport Text Drawing: replace single allocs with a memarena

- pass label strlen since in many cases its already known.
- use single linked list for cached text drawing.
- add BLI_link_utils.h for single linked list macros.

own tests give approx 22% overall speedup.
Fix mistake in recent DM material changes
Fix T39766: bone calculation from edit mode goes wrong

Own logic error in previous commit...
Fix T39758: Blender Crash when removing pinned Scene.
Fix error in last commit
Code cleanup: use bools for DM