Octave: fix bugs in output of cleanup code

This minor patch fixes some Octave bugs related to the output of cleanup code, e.g. freearg typemaps. Consistent with other language modules, the cleanup code is now included after the "fail:" goto label, so it is invoked if the wrapping function raises a SWIG_exception. The patch also adds support for the "$cleanup" special variable.

Passes Octave test suite for versions 3.0.5, 3.2.4, 3.4.3, 3.6.3.