Python 3 byte string output: use errors="surrogateescape"

... if available on the version of Python that's in use. This allows
obtaining the original byte string (and potentially trying a fallback
encoding) if the bytes can't be decoded as UTF-8.

Previously, a UnicodeDecodeError would be raised with no way to treat
the data as bytes or try another codec.
Add "unicode_strings" test case for new Python 3 behavior
Add Python 3 'surrogateescape' documentation
Work towards C90 compatibility for Lua
Fix comment typo
Correct CFLAGS CXXFLAGS for Javascript and guile examples
Fix compiler warnings in examples when using -std=c++98 -std=gnu89 -pedantic -Wreturn-type
Fix compiler warnings in generated code when using -std=c++98 -std=gnu89 -pedantic -Wreturn-type
Javascript warnings for c++98 - remove vla
Refactor Lua class base search to make ISO c/c++ compliant
Warning fixes in test-suite
Travis testing - examples use stricter CFLAGS and CXXFLAGS
Merge branch 'stricter-examples-compilation'

* stricter-examples-compilation:
  Travis testing - examples use stricter CFLAGS and CXXFLAGS
  Warning fixes in test-suite
  Refactor Lua class base search to make ISO c/c++ compliant
  Javascript warnings for c++98 - remove vla
  Fix compiler warnings in generated code when using -std=c++98 -std=gnu89 -pedantic -Wreturn-type
  Fix compiler warnings in examples when using -std=c++98 -std=gnu89 -pedantic -Wreturn-type
  Correct CFLAGS CXXFLAGS for Javascript and guile examples
Merge pull request #165 from hfalcic/master

Python 3 byte string output: use errors="surrogateescape"
Remove example Makefiles when running distclean-examples in out-of-src build
Record files left over after maintainer-clean in Travis build