Add model.get_component. Finding a component by name in a model

Useful when Hyperspy is called a library, since the components are
not directly callable.
Fixes #175 , plotting line spectra was raising an exception.
Rename get_component -> __getitem__ .
Merge pull request #2 from francisco-dlp/model_get_specific_component

Rename get_component -> __getitem__ .
Change component.name to property: check for duplicate when namechange

If the component is a part of a model, and the name of the model is
changed, the component will check if there are any components with
the same name.
Change model.append behavior: checks for duplicate component names

If a component with the same name already exists, the name will be
add _0, _1, _2, ...
If the component has no name, it will get the same name as its
_id_name: "Gaussian", "Voigt",...
Change model.__getitiem__ behavior: check if components have same name

__getitem__ will now raise an error it finds several components with
the same name
Add docs for calling components in a model
Merge branch 'master' into model_get_specific_component
Add tests for calling and naming components in a model
Merge branch 'master' into model_get_specific_component_cleanup

Conflicts:
	hyperspy/component.py
	hyperspy/model.py
Fix docstring in model.__getitem__
Fix typo in model.__getitem__ docstring
Fix some whitespaces in model.append
DOC: typos
Rename mapped_parameters -> metadata, original_parameters -> original_metadata
Automatic style corrections courtesy of autopep8.
Add  and  properties and deprecation warnings
Automatic style corrections courtesy of autopep8.
Change hdf5 file format to 1.2 and add a get_hspy_version function. Also correct typo in Hyperspy format name.