Add property diffing

Summary:
This adds a visual diff for the properties of the different widgets in
an item.

There was some additional complexity with how the diffs were to be
rendered. Originally I was storing the diffs as trees and then rendering
them by doing a pre-order traversal. The issue there was that we want
entries that correspond to each other to be the same height, and since
the two sides of the diff were stored in completely different objects,
and were rendered independently, they couldn't be simply joined
together.

My solution was to instead generate the diff as a list of entries, so
that instead of being two vertical bars, each with one side in them,
it's a bunch of horizontal diffs, so the heights all line up.

Test Plan:
  * Check out /difftest.html
    * Shrink the window so the hello hello hello is not on one line
    * see the other side accomodates it
  * check out /test/index.html, see all tests pass

Reviewers: jack, alex

Reviewed By: alex

CC: alpert

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