PyAPI: noise.seed_set(), note that zero is a special case.
Smallhash: refactor and fixes

- BLI_smallhash_remove didnt decrement total entries.
- rename vars to match closer to ghash.
- smallhash_lookup returns NULL when no entry found.
- using a zero value key wasn't supported.
- no need to memset or calloc bucket arrays
- add asserts for unsupported conditions.
- added BLI_smallhash_lookup_p
Fix T38358: typo in own rB77089a3bf203.

Also allowed me to fine another potential issue, hit.dist was no more initialized correctly - and I had forgotten to take into account Brecht's remark about normalize_v3() also returning the vector's previous length.
Fix T38403: Laplacian smooth on instanced objects leads to crash.

The laplacian modifiers (smooth and deform) use the OpenNL library,
which is not threadsafe due to the use of a global context variable.
Ideally this would be changed so that an explicit context can be
created for every caller of the OpenNL functions, but since OpenNL's
most recent version is from 2010 this is unlikely to happen.

As a workaround for now just use a mutex to prevent conflicting OpenNL
calls. Eventually OpenNL can be replaced by eigen or ceres.
Fix for crash linking node groups through bpy.data.library

Defer creating the Python objects until after appending is finished
because NodeTree's types are not initialized until then.
Fix a nice bug in ED_view3d_win_to_vector() - vector returned for an ortho view was negated compared to vector returned for the same view in perspective...

Found while working on snapping issues, confirmed using bisect tool: previous to this commit, inner/outer parts were swapped when switching from otho to persp!
Fix T38409: Snapping Bug

Issue partially caused by own errors (glicth in new BKE_boundbox_ray_hit_check() code causing segfault in volume snapping,
and we have to treat ortho and persp differently in case of face snapping, because in persp our ray_start might very well
already be *inside* the boundbox of the checked object), and partly due to the fact that ED_view3d_win_to_vector()
was returning wrong vector (negated one) for ortho views (see previous commit).
Code cleanup: add BLI_testextensie_n, replacing multuple calls to BLI_testextensie

also use attributes for BLI path functions
Code cleanup: remove BLI_has_parent
More snapping fixes (this is ridiculous).

I hope this time we are done!
Events: fix for wmEvent prevx, prevy not updating
Fix for T32843

Exported angles for spot size animation is in radians , however Collada expects it to be in degrees.
This patch is for fixing import and export, and also renaming a variable

Reviewers: gaiaclary

Reviewed By: gaiaclary

Differential Revision: https://developer.blender.org/D273
Fix compilation error with msvc2012 and 2013 as well
SCons: Simplify Endian determination

Differential Revision: https://developer.blender.org/D252
Code cleanup: comments and warnings
Fix for error setting unique names for tracks
Code cleanup: be less vague checking invalid index values
Fix player stub after type change
Cycles: less instructions for CPU perlin code

Also move shuffle() in bvh traversal back (was accidentally lost in SSE hair revert)
Fix T38432, Fix 38432: more stupid error in view3d ray code, sorry about that.