changed: avoid use of unnecessary types

avoids including the file where these are defined,
which in turn helps reduce spurious rebuilds.
fixed: add virtual destructor

class has virtual methods
changed: remove unused variables

quells compiler warnings
changed: explicitly cast to int to quell compiler warning
fixed: initialize in declaration order
changed: split off IPlayer callback to a separate file

helps keep rebuilds down if IPlayer.h is touched.
brings it down from 149 files rebuilt to 30 (149 for new file).
thus no spurious rebuilds was found but callback should change
less
changed: split off window id's to separate file

Key.h rebuilds from 291 to 129 (232 for new file) => 60 spurious
rebuilds killed
changed: remove unnecessary includes
Merge pull request #2452 from cptspiff/various_small_fixes

Various small fixes