Licenses: Move usage description to top of section
diff_match_patch: document source of code and license
diff_match_patch: update to Revision 106

Import revisin 106 from
https://code.google.com/p/google-diff-match-patch/source/browse/trunk/python2/diff_match_patch.py?r=106
diff_match_patch: -unused import

Cherry-pick f9472d205d86c1e2c80d64b58c85e3669392d20d which reapplies svn
path=/src/trunk/; revision=16884

Conflicts:

	translate/misc/diff_match_patch.py
diff_match_patch: Postpone import

Cherry-pick ad7dd2e68b77ad45ee5c25b0388328aec02238e3 reapply svn
path=/src/trunk/; revision=16970

Conflicts:

	translate/misc/diff_match_patch.py
diff_match_patch: docstring fixes.

Cherry-pick 70e88d3b7788509c3c69404b56db4f8b17ee5c9c to reapply
docstring fixes.

Conflicts:

	translate/misc/diff_match_patch.py
Report encoding detection errors as IOError to prevent fatal errors in Pootle.
Sometimes Java .properties files contain characters in encoding other than US-ASCII or UTF-8.
Of course it should be fixed by using native2ascii and escaping such characters.

But while loading project to Pootle with many property files it's impossible to find, which file is incorrect,
because of badly encoded characters - Pootle show only error about NoneObject at properties.py, but no actual properties filename.

This fix checks if file can be read and if not - raise IOError with filename,
so Pootle can read next file, and user can find problematic files in web GUI.