Add code to change press state of widgets

UIButton class has onPressStateChanged methods that would never actually be called.
Fixed the setEnabled function in the UI Widget base so that these methods are called.
No other Widget classes override setEnabled so this shouldn't introduce any other issues.
Thanks, @dzl-ian 
If we call `setEnable` method in TouchBegin method, the button's state will be wrong. 
```
bool Widget::onTouchBegan(Touch *touch, Event *unusedEvent)
{
    _hitted = false;
    if (isVisible() && isEnabled() && isAncestorsEnabled() && isAncestorsVisible(this) )
    {
        _touchBeganPosition = touch->getLocation();
        if(hitTest(_touchBeganPosition) && isClippingParentContainsPoint(_touchBeganPosition))
        {
            _hitted = true;
        }
    }
    if (!_hitted)
    {
        return false;
    }
    setHighlighted(true);
    Widget* widgetParent = getWidgetParent();
    if (widgetParent)
    {
        widgetParent->interceptTouchEvent(TouchEventType::BEGAN, this, touch);
    }
    pushDownEvent();
    return true;
}
```

We call setHighlighted(true) in onTouchBegan method which will cause button's state changing from normal  to pressed, then the callback will be called in pushDownEvent. If we call setEnabled(true) in the pushDownEvent method, the button's state will change back to normal according to your modification.  That might bring new bugs.