添加getCategory方法

用于区分控件的类型，不再是简单的继承关系、

Fixed #157
Form使用getCategory来收集控件和数据
添加setProperties更灵活的判断值变化的方案

- 使用`isPropertyChanged`进行判断
- 使用`getXxxProperty`获取属性的原有值进行比对

Fixed #158
TextBox使用新的属性比较方案

Fixed #158