Move key and ref to descriptor and read from there

I think this probably makes sense; you could imagine a different factory that took key and ref separately from the props.

ReactPropTransferer/cloneWithProps still knows about `key` and `ref` but otherwise, React core doesn't look inside props now.

Test Plan: grunt test