steals python directors and adapts to perl5
don't forget the most important part
adds "callback" and "extend" examples
steals python director docs and adapts to perl5
mitigate ConvertPtr director cost when directors are not enabled
eliminate dead director code and convert remaining blocks
fix string mangled by tidy
prefer polymorphism on existing destructor over custom destructor method
ran "beautify-file" make target over perl5.cxx patch hunks and rewrote callback and extend examples in the style of existing examples
try adding travis ci to this branch
Merge remote branch 'upstream/master' into perl5-directors-minimal
Merge remote branch 'upstream/master' into perl5-directors-minimal
Merge remote branch 'upstream/master' into perl5-directors-minimal
Merge branch 'perl5-directors-minimal' of https://github.com/talby-/swig into talby--perl5-directors-minimal

* 'perl5-directors-minimal' of https://github.com/talby-/swig:
  try adding travis ci to this branch
  ran "beautify-file" make target over perl5.cxx patch hunks and rewrote callback and extend examples in the style of existing examples
  prefer polymorphism on existing destructor over custom destructor method
  fix string mangled by tidy
  eliminate dead director code and convert remaining blocks
  mitigate ConvertPtr director cost when directors are not enabled
  steals python director docs and adapts to perl5
  adds "callback" and "extend" examples
  don't forget the most important part
  steals python directors and adapts to perl5
Perl directors changes entry added and minor tidy up
Beautify director output
Beautify director.swg files

Also some comment corrections for Perl
Error out attempting to use directors without -c++

Remove redundant #ifdef __cplusplus markers in director.swg
Relax Java preproc_line_file unit test to pass in a separate build directory.

Exact paths comparison doesn't work when SWIG is built in a directory
different from the source one, so check whether the path just ends with the
expected path components instead.

This allows all Java tests to pass in this build configuration.

closes #115
Change the length of strings created from fixed-size buffers.

Use the usual C rule for NUL-terminated strings instead of discarding all the
trailing NUL characters.

This was unexpected (as buffers in C code are not necessarily always padded
with NULs to their full length) and also inconsistent among languages as this
was only done for those of them using typemaps/strings.swg but not for C# or
Java, for example, which terminated the string at the first NUL even before
this change.

Notice that this patch couldn't use strlen() or wcslen() with possibly not
NUL-terminated strings, so we had to add [our own equivalents of] strnlen()
and wcsnlen() and use them instead. This required adding yet another parameter
to string typemap macros, so update the example using them accordingly too.