BGE: Add level mode to property actuator

This patch adds to the existing property actuator a level mode, which is switching the property depending on the input level.

Reviewers: moguri

Reviewed By: moguri

Differential Revision: https://developer.blender.org/D652
BGE: Add missing documentation and attribute constraint_type for ConstraintWrapper

1. Add attribute to get the constraint type.
2. Add missing documentation for getParent, setParam, constraint_id in bge.types.KX_ConstraintWrapper.rst.
3. Add missing documentation for GENERIC_6DOF_CONSTRAINT and flag bit in bge.constraints.rst.
4. Fix typo in CcdPhysicsEnvironment.cpp

Reviewers: moguri

Reviewed By: moguri

Differential Revision: https://developer.blender.org/D654
BGE: Add property/material detection and X-Ray for mouse over any sensor

This patch adds a Property/Material detection and a X-Ray mode to the mouse over any sensor like on the ray sensor.

Proposal:
http://blenderartists.org/forum/showthread.php?261847-BGE-proposal-Mouse-Over-Any-sensor-with-Property-and-X-Ray&highlight=proposal

Reviewers: moguri

Reviewed By: moguri

Differential Revision: https://developer.blender.org/D653
Fix wrong index update when removing CV points
Fix T41039: Hook modifier sometimes fails to retain correct bezier curve point assignment
Fix wrong interface flags combination in inverse kinematics panel
Fix T41035: Scale Manipulator CTRL-ALT-S issue with maya shortcuts
Fix T41081: Presets not working on pinned properties panels.

Preset operators should avoid using `bpy.context.object.data` as a base
path to properties. This path is not available in the buttons context
when using pinned datablocks! Instead use the specific
`bpy.context.camera` and `bpy.context.lamp.sky` paths now, which lead to
the correct datablocks in any case.
Fix T41114: Particle systems cause memory corruption due to invalid
dmcache index (again).
Fix T41109: Reloading image that has been modified outside Blender does not update image in Image Texture nodes
Cleanup: curvecaches for curves, not mballs!
Cleanup in MBALL/displist: no need to create curvecache for non-basis mballs, will never be used anyway!
Cleanup: warning
Fix RGN_DRAW_REFRESH_UI flag being overwritten
MBall cleanup: remove unused F_ERROR references, als fix/enhance BKE_mball_basis_find()

BKE_mball_basis_find() was making a bunch of string manipulations for all MBall objects
(including duplis), and then making a (broken!) check to do nothing in case of duplis mball!

Now it makes correct check in early stage.
Fix T41010: MetaBall Duplivert Unwanted Movement Bug.

BKE_scene_base_iter_next() was completely messing poor dupli objects' matrices...

Note this func should be reworked, but as stated in comments, it should not exist at all,
DAG should be used here, so until we have new shinny one we can live with this.

Also, mballs do not behave correctly when used as duplis (org object remains visible/rendered,
unlike any other object type). This will be fixed in a separate patch/commit,
since it proved to be rather tricky to handle.
Cleanup: Use more logically constructed ELEM macros

- name primary comparison var 'v'
- names remain same when expanded
- no odd mixing of macros, use prev ELEM + extra arg
- use 16, even if not used yet, saves adding more in future
Cleanup: test naming
Editmesh: Add options for selecting manifold

Manifold was defined as any edges not using 2 faces,
however its useful to have some options here.

You can now select between Wire/Boundary/Multi-Face/Non-Contiguous/Verts

Note the Non-Contiguous option is new,
it selects edges between faces pointing in different directions.
Fix T41100: draw other object UVs doesn't work when both objects have no image.