Renderer refactor in preparation for versioning

Summary:
Changes the renderer to hold separate widgetInfo and widgetProps state
widgetInfo represents upgraded widgetEditor props, while widgetProps
represent the current widgetProps (after being passed through the widget
prop transform).

It's unfortunate that these must be stored in state, but give the
way react props work right now, and how we will need to run a
couple upgrade/transform functions on them, this currently seems
to make the most sense.

comment and move widgetIds.push

Test Plan:
 * Made lots of widgets and they didn't seem to break.
    * made sure to make an input number and change the graded value,
      to check that editor props still propagated to the renderer
      correctly
    * there seems to be a small bug? where typing a number in the
      input-number, then clicking in and out of the correct answer
      field in the editor erases the input-number (the first
      time only), because it's actually adding that prop to the
      editor. However, this bug also seems to repro in old
      versions. We'll see if we can fix it when we make the
      same sort of refactor for the editor
 * make test

Reviewers: charlie, joel

Reviewed By: charlie, joel

Subscribers: alex

Differential Revision: http://phabricator.khanacademy.org/D10520