Added routing and schema support

Define schemas with the schema property and widgets will receive data
based on the schema. Data is routed automatically to the widgets that
are "subscribing"