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 branch 'master' of https://github.com/MediaPortal/MediaPortal-1
Merge branch 'refs/heads/master' into BUG-4118-Add_Padding_Property_To_Labels
Fixed 4186: Enabling AC3 encoding option in audio renderer causes memory leaks

- ProcessAC3Frame was leaking memory when the temp buffer was not release
- NegotiateFormat was not releasing WAVEFORMATEXTENSIBLE
Mantis #4188, #4189, #4190, #4191 and #2899

Fixes several glitches in the SkinEngine related to GUIButtonControl.cs usage that relies on rendering methods of GUIFadeLabel.cs

Even though these are independent issues, the fixes play hand in hand and cannot be seperated.

Also did some minor code cleanup in regards to remove inconsistent variable naming and redundant code that does nothing and was actually complicating fixing this issue.

Mantis #2899 should be fixed as a side effect as it's just one symptom of underlying defect.