Optimize misc::naturalSort()

Previous implementation used QRegExp to find a first digit. That is
utterly ineffective.

When torrent list is sorted by name (a column that uses the naturalSort() for
comparison), naturalSort could take 18.6% of the time of the UI thread. Optimize it
so now it takes 1% of the time of the UI thread.
Merge pull request #2041 from sorokin/optimize-natural-sort

Optimize misc::naturalSort()
Don't show multiple unlock UI dialogs. Closes #2040.
Remove superfluous semicolon(;).
Show input box to filter torrent list only when the list is shown

It's misleading to show the filter on every tab when it works only
for the torrent list.
Add placeholder text to the input to filter the torrent list

Users can mistakenly think the input box is to search for torrents
and not to filter the torrent list. A placeholder text will make things
clear.
Focus transfer list on startup

The torrent list filter will be focused otherwise and its placeholder
text will be hidden on startup.
Fix incorrect ETA calculation
Cleaup includes
Fix libtorrent types forward declaration errors/warnings.
Use boost:bind() as the docs show. Allows compilation with older gcc versions.
Merge pull request #2060 from glassez/fwd_decl_fixes

Fix libtorrent types forward declaration errors/warnings.
Use Qt::GlobalColor to refer to color instead of string

Qt uses binary search to convert string to QColor, we don't need that
binary search at all. This patch could be considered as optimization, but
in reality creating QColor takes only 0.2% of time. So it should be visible
at all.

This could be considered as cleanup for not calling expensive functions
from non-expensive ones.
Remove mutable fields from TorrentModelItem

The querying of TR_STATUS doesn't affect color and icon now.
Call TorrentModelItem::state() directly in getTorrentStatusReport

There is no point in wraping/unwraping QVariant.
Split src/transferlistdelegate into .h and .cpp
Split src/transferlistfilterswidget into .h and .cpp
Split src/torrentpersistentdata into .h and .cpp
Remove default argument from TorrentPersistentData::setAddedDate()
Put directories first when sorting torrent content by name

Closes #1594.