Model get specific component

A cleaned up version of https://github.com/hyperspy/hyperspy/pull/162

Which should probably be ready for merging? 

Someone else should maybe double check that it doesn't break any core functionality, since it changes how model.append and component naming behaves.