ignored duplicate entries in the HistoryProvider

Currently razorqt-runner can produce duplicates in the history:
if you run the same command from the CustomCommandProvider twice, it
will be inserted into the HistoryProvider-list and the file twice.

This patch checks changes HistoryProvider::AddCommand, so that it will
search if this command already exists and it will move that entry to
the top of the list (instead of creating a new item).

Additionally I added a check to HistoryProvider::HistoryProvider to
filter duplicates from the history-cache-file. Of course the addition to
HistoryProvider::AddCommand alone will guarantee that no duplicates
exist, so this filter is only be needed if you upgrade from older
versions of razorqt-runner and you already have duplicates in your
history.