Small changes to the ScriptRepository interface for improvement

Attempt to improve the interface for the sake of performance. Otherwise,
plenty of copy of strings will be made that are useless.

re #6177
Implementation of RepoModel

It fits the requirement of QAbstractItemModel

re #6177
Small correction in RepoModel

re #6177
Add RepoTreeView class

Just header class, its intention is to make known that the current selection
of has changed. This is usefull to display the correct metainformation of
the entries.

re #6177
Introduction of ScriptRepositoryView

The class responsible for the UserInterface of ScriptRepository

re #6177
Correct a bug introduced

The commit http://trac.mantidproject.org/mantid/changeset/2c291ece8559905907f15f6f001a5cad3654f5fb/
has introduced a bug, that does not update the status of a downloaded directory.

This solves the issue.
re #6177
Remove useless code of ScriptRepositoryImpl

re #6177
Add support for Upload from the User Interaction point of view

re #6177
Add support for author

re #6177
Handle exceptions RepoModel

Allow the RepoModel to handle download/upload exceptions and inform the
the reason.

re #6177
Improve the information of some exceptions

re #6177
Show exceptions to users

re #6177
Does not create an empty file when download fails.

re #6177
Correct the ScriptRepositoryTest to not change the properties

When the unittest is executed it should not change the configured user property.
Add also a new unit test to ensure that folder has correct status after download.

re #6177
Correct the installation of ScriptRepository

It is possible to install the ScriptRepository at the same path of a
previous installation.

re #6177
Ensure model is correctly created to create widget

re #6177
Publish ScriptRepository GUI

re #6177
Merge branch 'feature/6177_script_repo_mantidplot' of https://github.com/mantidproject/mantid
Merge branch 'master' of https://github.com/mantidproject/mantid