Added enrichment results display.

This change also includes some structural improvements. Messages are now
moving to just two: `has` and `wants`, with tools able to declare that
they can provide services to meet the needs of `has` and `wants`. The
difference is: `has` are things that a component can produce, and can be
offered to users in a separate interface (here as a menu in a sidebar);
`wants` are things the user has explicitly requested and should be
resolved and displayed in the main interface.

For example if a component can supply the definition required to create a
list, and the user requests this to happen, the component should send a
`wants` message with a description of the list contents. The app should
then find a tool that can make this list, and allow that tool to make a
new step to which control can be transferred. This means the current
tool need not implement the logic to create lists itself, for example,
but merely know how to provide the appropriate definition.

A tool that on the other hand has things a user might be interested in
should publish a `has` message, and the staircase is reponsible for
displaying and interface for activating the message.