DO NOT PUSH: only run Travis Octave tests
Octave: ignore test suite generated files
Octave: further whitespace/indentation/style cleanup of octave.cxx

- Used "astyle -A10 -s2 -N -p -H -U -k1" for style cleanup
- Replaced NewString("") with NewStringEmpty()
- Used 'w' instead of 'f' for Wrapper() objects
Octave: cleanup/restructure library files

- Restructure runtime code into declarations, function/class definitions,
  and initialisation code
- Rename internal functions/types to follow SWIG_Octave... or SwigOct...
  naming styles
- Style/comment/whitespace cleanups
Simplifications to Examples/octave/example.mk
Examples/Makefile.in: allow C/C++ wrapper output file names to be overridden

- Caller can set ISRCS/ICXXSRCS to modify the C/C++ files names, so long as
  they still have .c/.cxx extensions
- IOBJS now derives from ISRCS, new ICXXOBJS is used when compiling C++ code
Lib/typemaps/string.swg: make SWIG_strnlen() an internal function
Add 'decl' field to Wrapper() object

- So that wrappers can carry around an independent declaration of a
  wrapper function/variable, in addition to the definition code
- Add function Wrapper_print_decl() for printing the declaration
Extend SwigType_emit_type_table(): change modified, print only declarations

- SwigType_emit_type_table_decl() also print declarations of all type table
  variables to a 3rd file, which also removes 'static' as the storage class
- SwigType_emit_type_table() retains the previous default behaviour
Allow language-specific support for multiple output wrapper files

- Language module must set Language::multi_file = 1 to enable
Octave: turn on autodoc in examples, so that feature is tested
DEV Octave: support multiple output files