Merge branch 'master' into coverity-scan

* master: (478 commits)
  Use -rrbconfig rather than -rmkmf to load rbconfig
  Add suggestion to check block delimiter
  Add explanatory comment to pp_unknowndirective2.i
  Fix PHP crash in director_finalizer
  Add 3.0.4 release information
  Fix typo
  Note 1.8 as the oldest supported version
  Fix PHP backend for default_args testcase
  Update html
  Python 3 default args fix
  Revert introduction of python:defaultargs feature
  Ruby: Replace Config::CONFIG with RbConfig::CONFIG in
  Add regression test for #217
  [PHP] Fix segfault in director upcall check
  Fix linux gcc warnings and strtol corrections
  Tests for Python default arguments and %pythondefaultargs.
  Python default arg improvements
  [lua/luarun] change return type from int to void on functions not returning anything
  Add note about delimiting blocks of Python code
  Fix python default_args testcase for Python 3
  Fix Python default argument handing broken since swig-3.0.3
  Python default argument test cases from issue #294
  Wording change for missing semicolon error
  Handle "constexpr explicit" and "constexpr static"
  Allow C++11 "explicit constexpr"
  Improve errors for missing ; and unexpected )
  Fix typo in old entry
  Add test coverage for unterminated %{ ... %} block
  When reporting an error for a construct which hasn't been terminated when the end of the file is reached, report it at the start line rather than "EOF" as then tools like editors and IDEs will take you to a generally more useful place for fixing the problem.
  Improve error message for extraneous '%}'.
  Add .gitignore for Examples/test-suite/errors/
  Fix testcase name in expected output
  Improve error message when an unknown SWIG directive is used
  Update link to point to 3.0 docs
  Fix links to the online 1.3 docs to instead be relative
  Drop deprecated warnings for ancient options
  Fix tab to space in HTML preformatted block
  Provide -cppext as a general command line option
  Split -help output into 4 chunks instead of 3
  More on Go examples [skip ci]
  Properly quote parameters in preinst-swig wrapper.
  Fix typo
  Bump version to 3.0.4
  HTML tweaks
  Add 3.0.3 release information
  Minor tweaks to the changes file
  %constant and structs support for Lua
  Fix D examples when run 'in-source'
  Fix D examples clean
  Revert "Fix D examples clean"
  Fix javascript clean
  Let Octave 3.8 fail in Travis
  Fix D examples clean
  Fix javascript clean
  Tidy up Javascript build system
  Don't delete checked in files with 'make distclean'
  Reduce scope of template_default_class_parms testcase
  Fix abort using template default parameters
  Test suite warning fixes
  [Perl] tidy "warning: duplicate 'extern' declaration specifier" when building generated code under clang
  Issue #282 perl5 archlib vs archlibexp
  [Go] Changed link '' to '' in the Go documentation.
  [Go] Updated Go documentation (examples, runtime.SetFinalizer, object ownership).
  Added auto-generated 'Examples/d/' to '.gitignore'.
  Warning suppressions in tests
  nested_scope test fixes for clang
  Fix use of preprocessor null directive
  Add testcase for nested inner class deriving from a templated base class and defined outside of the outer class.
  Add in missing constant_directive.i test
  Improve Python builtin and %constant structs
  fixed python global object constants
  Partial support for %constant and structs
  Ignore E402 (import not on top of file) PEP8 error.
  Add PEP8_FLAGS variable to the test suite Python makefile.
  Fix templated constructors regression
  Correctly detect Go1 during configure
  Fix regression in introduced in merge of C++11 strongly typed enums support - Guile constants bad casts generated - Go non-public enum value wrappers assert failure
  Document new C++11 strongly typed enumerations support.
  Add more docs about _global_ prefix in typemap temporary variables
  Add clarification on _global_ prefix.
  Improve Javascript Webkit detection
  Add c++11 strongly typed enums runtime test for Javascript
  Add c++11 strongly typed enums runtime test for Octave
  Add c++11 strongly typed enum support for Guile
  Add c++11 strongly typed enum support for Go
  Add c++11 strongly typed enum support for D
  Add c++11 strongly typed enum support for Lua
  Fix line endings in lua example
  Add c++11 strongly typed enums runtime test for Tcl
  Add c++11 strongly typed enum support for PHP
  Add c++11 strongly typed enums runtime test for Ruby
  Add c++11 strongly typed enums runtime test for Perl
  Enhance C++11 strongly typed enums testcase
  C++11 strongly typed enums runtime test for python
  fix for nested template defined out of class (issue #265)
  C++11 strongly typed enum support
  Add Java runtime testcases for C++11 strongly typed enums
  add director_nested_class to list of broken tests
  Add C# support for wrapping C++11 strongly typed enums
  Enhance strongly typed enums testcase