Fix T40014: Broken shading with mirror modifier and auto smooth normals while hiding verts.

Stupid mistake that showed only when there was some hidden faces
(lnors should always be increased... even when the face is not drawned!).
Fix T40149: cycles motion blur render problem with multiple render layers.
Fix T40115: Smoke simulator memory leak with high poly mesh emitter.

Own error, all kudos go to scorpion81 (Martin Felke) for the nvestigation & patch!
Usual typo and style fixes in UI messages...
Freestyle: Removed redundant flipping of UV coordinates.

Patch contribution by Paolo Acampora.  Thank you!
Freestyle: Fix for comments in line with the previous commit.
BMesh: make BM_face_calc_normal_subset apart of the bmesh api

also make face normal calculation functions return normal length
Tweak for node socket swapping: don't un-hide sockets automatically.

This was suggested by @zanqdo on IRC. Hiding sockets is a user choice
(not to be confused with "unavailable" disabled sockets). Hidden sockets
suddenly popping up when linking is confusing and intransparent, better
just ignore them for the swapping.
Fix T40111: replaceMesh() crashes BGE when used on a parented object

The replace mesh code was still calling release() on the parent object when it
no longer needed to (due to earlier commits).
Fix T38379: Mesh vertices only update when in cone of last created spotlight

The shadow render passes could set a mesh's modified status to false
even if they were not rendered. This means their display lists do not
get updated. For now, just skip setting all buckets' modified to false
during shadow render passes.
BMesh: add check to BM_vert_pair_share_face to allow adjacent loops

Add BM_vert_pair_share_face_by_angle to avoid selecting concave splits.
Show the "Maximum Draw Type" for empties and cameras in case they work
as duplicators.

This property was always hidden in the UI for empties and cameras. It
doesn't make sense for the objects themselves (they are wires-only), but
also gets inherited by duplis. Now show it greyed out if not used, but
make it available for duplicators.
Freestyle: Added .new() and .remove() methods to collection types of line style modifiers.
Freestyle: code clean-up.
Freestyle: naming fixes.

FreestyleSettings and FreestyleModuleSettings are now defined as RNA aliases of
FreestyleConfig and FreestyleModuleConfig, respectively.
Freestyle: minor UI text fix.
Freestyle: Fix for own mistakes in defining RNA aliases.
Freestyle: Added .new() and .remove() to the collection type of Python style modules.
Code cleanup: rename BM_face_legal_splits -> BM_face_splits_check_legal
Fix T40162: Vert connect creates extra face cutting across concave NGon.

We need to support cutting degenerate ngons, see: T39418
This commit disallows cuts across faces where the same vertices can create better cuts on different faces.