Added generics to Event so the source can be used without a typecast. 

Added onchange event to all Inputlike Widgets. They now sublass from
InputSourceWidget.