OM-108: om.core/shared is too brittle

Instead of passing it shared via cursors, provide a new dynamic
var *parent* that is bound during Om component render. om.core/build now
uses this to propagate shared information. Can be overridden by passing
an explicit shared property to om.core/build's third argument - this is
what we do in om.core/root.