SWIG: change interface renaming conventions

- Python: variables and constants are renamed by removing lal|X?LAL_
  prefixes; global variables are under <module>.globalvar
- Octave: only variables are renamed; constants, functions, and
  structs retain their C names; global variables are under <module>
- Refs #1453
SWIG: change convention for NULL pointers and input-output structs

- Previously: passing None|[] implied pointer to NULL pointer
- Now: passing None|[] implies NULL pointer-to-pointer, and
  0 implies pointer to NULL pointer
- Refs #1453
SWIG: add input view support and array struct typemaps

- Allows Octave/Python arrays to be passed directly to arguments of
  type {REALn|COMPLEXn}Vector[Sequence] or gsl_{vector|matrix}_...
- Refs #1453
SWIG: add input view support directives to LAL FFT functions

- With Octave/Python tests
- Refs #1453
SWIG: make LIGOTimeGPS fields immutable

- Should never be a need to assign to these fields individually
- Refs #1453
SWIG: specialised wrapping of LALUnit

- Supplies constructors, arithmetic and comparison operators
- Closes #872, #878
- Refs #1453