[guilib] adds non-const version of GetControl
[settings] use dynamic_cast<> to upcast to known control types and check NULL

Fixes crash in older skins not adapted to the settings changes.
[guilib] use dynamic_cast<> when copying controls of a specific type
[guilib] use dynamic_cast for upcasting where needed rather than c-style casts
[guilib] remove a bunch of unneeded c-style casts
[guilib] make use of SET_CONTROL_SELECTED macro
Merge pull request #4731 from jmarshallnz/check_controls

[settings] check control types - the id's have changed so old skins crash