ALL: Warnings about inconsistent struct/class declarations

Some types were forward-declared as class but are then declared as
struct. Clang complains about the inconsistency.
ENGINES: Warnings about overloaded virtual methods hiding inherited ones

Clang complains about some overriding methods hiding inherited
overloaded versions. Defining the overloaded methods in the derived
classes as well solves the issue.

Anyway, this is not an ideal design, see: http://bit.ly/12Wje7V
VIDEO: Warnings about '< 0' check on unsigned variable

Wether the variable shouldn't be unsigned or the condition
is useless.