Implement sane behavior of space key in torrent content list. Closes #140.

Definitions:

Selection in QTreeView consist of two things:

   currentIndex -- is a (dotted) cell where user clicked last time. Note
                   that it is a cell
   selectedIndexes -- is a set of cells (blue) of current selection.

Checkboxes in torrent content lists are belong to COL_NAME column.

Problem:

The problem is that spacebar toggled checkbox only in currentIndex
index. This has two consequences:

  1. It is impossible to toggle checkboxes on multiple rows
     simultaneously.
  2. If currentIndex is not in COL_NAME column a space key doesn't work
     at all. This problem is amplifyed by the fact that SelectionBehavior
     is set to SelectRows. So visually it is impossible to tell which
     column does it belong to. For end user it looks like "space doesn't
     work sometimes".

This patch addresses the problem by implementing TorrentContentTreeView
derived from QTreeView and overridding keyPressEvent(QKeyEvent*).

The code of TorrentContentTreeView::keyPressEvent is written under
inspiration from QAbstractItemView::keyPressEvent and
QItemDelegate::editorEvent.
Fix setting session id
Avoid unnecessary classes creation.
Fix main.cpp indentation. Issue #2192.
Show upload and download limits in status bar
Disable flooding debug messages
Precise setting of upload/download limits
Merge pull request #2277 from buinsky/master

Some changes in WebUI
Don't put limits to the alternative speed limits
Don't forget alternative speed limits changes
Merge pull request #2283 from pmzqla/speed-limits

Alternative speed limits changes
WebUI: Use correct max ratio value

Closes #183.
WebUI: Never show scrollbars in rate limits dialogue

A different DPI setting might make the elements in the dialogue big
enough to make the scrollbars appear, but not big enough to make them
useful. So, never show them.
WebUI: Make transfer info look like in the regular UI

The string for the transfer info was not translated as it should have.
Drop it completely.
WebUI: Define some functions on load

These function shouldn't be called when the page is not loaded yet,
so it makes sense to define them later.
WebUI: Use relative sizes when saving panel height

This should prevent situations in which the properties panel completely
covers the transferlist on page load.

Save also the height whenever the window is resized since that changes
the height of the panels without saving the height.
Follow project coding style. Issue #2192.
WebUI: Don't cache transfer info values

In this way speed limits are instantly updated.
WebUI: Update transfer info when speed limits are changed
WebUI: Allow to control the alternative speed limits

setGlobalDownloadLimit and setGlobalUploadLimit will now modify the
alternative speed limits if they are currently enabled and the regular
speed limits otherwise.

Add also two new commands to toggle the state of the alternative speed
limits and get their current state.

Closes #2203.