move ICursor protocol def
OM-36: support simple values as cursors

You may no longer build components from non-cursors. Expose two new
protocols IToCursor and IValueCursor for people who want to render
components from simple JS values.