Moved Opacity logic to GuiComponent

Moved Opacity logic from ImageComponent to GuiComponent so any extender of GuiComponent can implement its opacity logic.

Implemented Opacity logic for TextComponent (now text can have fade animation)