Add a state proxy to defcomponent

The map passed to a defcomponent's arguments contains a object at :state.
It is an atom-like object for reading & writing component state.