Add better error message for add_elements output is wrong

It now checks if the input is a tuple. If not it outputs an
error message on how to correctly input the elements.
In addition added some more information about this in the
docstring.
Raise ValueError instead of exception. Also raise an exception when the string is not a valid element symbol and make small changes to the exception text
Add mention to docstring in the Getting Started section
Tidy up misc
Tidy up misc a bit more
Clean up the user namespace
Organize misc.utils_varia
Merge utils_varia -> utils and move xmlreader to io
Add new mapped_parameters.signal_origin attribute and new Simulation and ImageSimulations signals. Also improve the way Hyperspy assigs Signal subclasses: now it is fully determined by record_by, signal_type and signal_origin. Added tests
Merge branch 'ENH_tidy_utils' into ENH_signal_type

Conflicts:
	hyperspy/misc/utils.py
BUG-FIX: add missing dependencies
Remove unnecessary import
Style corrections
Rename Signal._get_signal_dictionary -> _to_dictionary, new Signal.rollaxis method and (unfinished) move of to_spectrum and to_image to Signal
AxesManager can be indexed using index_in_array by passing complex numbers
New AxesManager indexing using complex integers
Signal.to_spectrum uses new AxesManager and Signal syntax. Signal.to_image in unfinished state.
Make  work
New Signal methods: set_signal_type, set_signal_origin, as_image, as_spectrum. The old to_spectrum and to_image functionality is retained in the correcponding Image and Spectrum subclass methods.
DOC: document the way Hyperspy assigns subclasses based on mapped_parameter attributes