Added first go of parallelising multiple wavelength running.

Uses threading from multiprocessing.dummy, and currently implemented as
a separate function within all_wavelengths.py, for testing.
Added n= option to set number of threads
Replaced run_wavelengths with the parallel version

Also updated all functions to pass keyword arguments through, making them simpler and more extensible.
Removed all old commented out centre wavelengths
Updated run360 to use parallelisation in the same way as run_wavelengths.
Fixed error in run_and_plot_360 docstring.
Updated run_principal_plane to run in parallel too.
Moved all multiprocessing imports to the top
Changed results of running for multiple angles to all be arrays
Preliminary fix for threading bug using deepcopy with SixS object
Updated all angles parallel code to fix threading bug

Does a deepcopy first now, like all wavelengths code.
Updated ETM wavelengths tests and added parallel equivalence test (wavelengths)
Extended parallel equivalence tests to use variable numbers of threads & do angles
Fixed bug in angles parallel equiv test
Updated docs to mention parallelisation and have `n` param
Merge branch 'parallel'

Conflicts:
	Py6S/SixSHelpers/all_angles.py
	test/test_helpers.py