Merge branch 'BUG-4109-Scrolling_for_CheckButton_and_ToogleButton' into Titan_skin_dev
Add one more line to render loop to avoid lines to "pop in" in case visible lines use less space than control dimensions
fixed handling of linespacing (was inconsistant and not working properly);
fixed juddering (now smooth scrolling possible even when using bigger fonts, faster scrolling speed and linespacing set)
Added property "textpadding"to GUIToggleButtonControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding"to GUICheckButton.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding" to GUIMenuButton.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding" to GUISpinButton.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding" to GUIButtonControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding" and "textpadding2" to GUISelectButtonControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding" to GUISpinControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding1" and "textpadding2" to GUIButton3PartControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.

Done additional code cleanup:
- removed all redundant type casts
- removed redundant code in get/set method
- fixed potential null references
- fixed outdated XML comments
- fixed a few typos in comments
Basic Cleanup of GUIListControl.cs

- removed redundant type casts
- convertws a few of the endlesa if-then-else chains to a switch statement. Looks like someone never heard of switch before.
- merged a few of the if if if if chains. Looks like someone never heard that an if can have more than one condition
- removed redundant code
- various code adjustments for readability
- removed a ton of braces where they shouldn't be and added braces where they should be
- fixed some potential null references
- fixed some XML comments
- removed redundant initialisers
- removed never referenced assignments

This code really needs a serious cleanup. The constant if-something-return sequences (often nested) are just masked gotos.

This is a prime example of spaghetti code. It can't get worse. Cleanup is urgently needed. No one can debug this.
Added property "textpadding1", "textpadding2", "testpadding3" to GUIListControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.
Added property "textpadding", "textpadding2", and "textpadding3" to GUIPlayListItemListControl.cs

The new introduced property "textpadding" pads a label with the number of given pixels (based on the skin resolution) after the text, therefore reducing the area in which text can be displayed to prevent overlapping of graphical overlays on the right end of the control.

Additiona Code Cleanup:
- removed redundant type casts
- removed redundant code
- removed redundant initialisers
- various code adjustments for readability
- fixed some potential null references
- fixed some XML comments
- removed never referenced assignments
Mantis #4182

Center alignment of labels doesn't position oversized labels correctly.
Mantis #4183

Added missing setting of parent control and dim colour to GUIFadeLabel  classes.
Reverted change from Mantis 4118 in GuiSpinControl.cs and added latest references.xml for Titan.
Mantis #3808

textColorNoFocus, textColorNoFocus and textColorNoFocus2 were added to GUIListControl.cs

If not defined they take the value of their textcolor counterpart.

This property will override the textcolor for items that are not selected.

In addition the method RenderLabel() was commented a received a bit of a cleanup. It's still very ugly but not at lest a bit understandable for future changes.
Fixed logic behind the textColoNoFocus Properties of GUIListControl.cs to be optional and behave properly with the way RenderLabel() overrides the text color.
Merge remote-tracking branch 'remotes/origin/BUG-4172-Text_in_scrollbox_pops_in_on_the_bottom_rather_than_scroll_in'