improved Value<T>: can use non-Data, can be used for inputs

…as a side effect, Wrap<T> now holds a shared pointer to T.