Versioning: Upgrade widget editor props

Summary: The WidgetEditor now upgrades its widget's props

Test Plan:
Added code to input-number:

    version: {
        major: 1,
        minor: 0
    },
    propUpgrades: {
        1: (oldProps) => {
            var newProps =_.extend(oldProps, {
                answerType: "decimal"
            });
            console.log("upgrade!", oldProps, newProps);
            return newProps;
        }
    }

 * Loaded test.html (which has an input-number 0.0) and verified
   that the transform happened and the input-number's format was
   now "decimal".
 * Changed the correct value of the input-number multiple times
   and verified that the upgrade function was called only on
   the first change.
 * Tested grading on the above.
 * Added an input-number from a blank question and verified that
   its version was correct in developer json mode, and that
   the upgrade function was not called while doing this.

Reviewers: charlie, joel

Reviewed By: joel

Subscribers: alex

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