Fix for recent error (editmesh triangulate crashed).
BMesh Operators: BMO_op_finish now overwrites values in debug mode

This should prevent accidental use-after-free.
Fix for recent BMesh regression refactoring out face tessellation
View Navigation: Walk and Fly modes

Summary:
This is a replacement for the dynamic fly mode.
It behaves as the first person navigation system available
in most 3d world  games nowadays.

Shortcuts:
----------
Shift+F      - Start View Navigation operator
Ctrl+Shift+F - Stat old Navigation operator
WASD (hold)  - Move forward/backward and straft left/right
QE (hold)    - Move up and down
F            - Fly mode
R            - Walk Mode
Tab          - Alternate between Walk and Fly modes
Shift (hold) - Speed up movement
Alt (hold)   - Slow down movement
Space        - Jump (teleport when in fly mode)
T            - Teleport

User Preferences Options:
-------------------------
Navigation Mode   - fly/walk navigation systems
Mouse Sensitivity - sensitivity factor to mouse influence to look around
Teleport Duration - how long the duration last
Camera Height     - camera height to use in walk mode
Jump Height       - maximum jump speed in m/s
Move Speed        - base move speed in m/s
Boost Factor      - multiplication factor when running or going slow (1/boost)

Development Notes:
------------------
* The initial code was based on view3d_fly.c.
* The NDoF code was not touched, so it most likely is not working.
* I removed the deacelerate/accelerate code.

Pending Issues:
---------------
* The axis roll correction is disabled (it was affecting the move around code.
* Draw in the UI the shortcut options, and current values (e.g., Mode: Fly/Walk)
* We can rename Fly to Free, so Walk/Free Navigation is provided by this code, and Fly can use the old code.
* They would need to be integrated as one operator somehow (the code can be merged, but to evaluate whether it's worthy).

Reviewers: ideasman42

Differential Revision: http://developer.blender.org/D30
View Navigatino: rename fps to walk, now to change the internal variables
View Navigation: changes from review

Implemented:
* rename from fps to walk
* unifying walk and fly modes into VIEW3D_OT_navigate
* change up/down to Q/E keys
* expose gravity in the ui
* acceleration/deacceleration
* new shortcuts (MMB, ...)
* remove X/Z rolling
* teleport distance clamp to positive
* huge cleanup
* other small changes

Missing parts:
* walk->base_speed needs to be static or an operator settings
* Teleport should try to land in an offset to the hit point
* Speed could/should be relative to unit_settings.scale_length
* Testing/bug fixing
* Reverse mouse (I added a placeholder, but no functionality nor UI)

Not addressed:
* NDoF will not be supported for now
* We need a nice API to draw in the header while running the operator