Minor optimization for strlen and memcpy calls for reading blend files

Summary:
This commit removes ~10000 strlen calls and ~100000 memcpy calls in blender (profiled with blender --background), ~10000 memcpy calls in makesdna.

There is no need to create null-terminated strings for atoi, because it converts only the initial portion of the string anyway.
Also it was noticed that DNA_elem_array_size and arraysize functions work only with full strings, so there is no point to calculate strlen.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: http://developer.blender.org/D105
Editmesh: skip allocating a face array for recalc-normals
Fix typo in previous own commit (thanks to _FrnchFrgg_ for noticing this!).
Fix T37827: cycles XML mesh export utility not longer worked.
Missing NULL-pointer check in BKE_image_free_anim_ibufs
Make compression in IMB_allocImBuf match other places
Fix T37826: Opening a new image in the image editor

Cast dimensions to size_t before multiplication.
Also made add_ibuf_size survive cases when image
buffer allocation failed.
BLF API: Add BLF_width_to_strlen,rstrlen gives a byte offset from a string width
UI: use BLF_width_to_strlen for efficient text clipping
Disable region overlap in movie clip editor

Before it was giving weird behavior with timeline in MCE
and track preview widgets. But there's also no much benefit
of having transparent toolbox there.

Requested by our motrack guru Sebastian ages ago.
Motion tracking: use PROP_PIXEL for pixel RNA values
Add optional 'frame' argument to scene.timeline_markers.new(name)

Differential Revision: http://developer.blender.org/D101
Color management: use fallback mode if there're no displays/views

Before this it was a runtime check for number of displays/views
which is rather really annoying.

This simplifies code a bit and allows to do some more tricks
in other patches.
Fix possible crash when cleaning cache with some ibufs removed by the memory limit
Better fix for previous commit

Cache iterator might return unused keys as well.
Now unused keys are being removed before cleanup
and iteration.
UI: Tabs categories for panels (D75)

- works by defining panel categories, currently restricted to the toolbar.
- no panels define bl_categories yet, so no user visible changes since tabs only show when there are multiple.
- panel pinning is available in rmb menu or alt+lmb.
UserDefaults: disable orbit around object center and region-overlap

both have bad side-effects with strange behavior and viewport performance
Fix for out-of-bounds memcpy() when adding a material
Better handling of new libnames of OpenEXR 2.1 (same solution as one used in OIIO/OSL source).
More slangs and other spellchecking exceptions...