Fixed table implementation to be more React-y, use less DOM manipulation, and work on mobile

Summary:
The existing table implementation didn't store any values and instead read them off of its
input elements use getDOMNode(). I refactored it to instead store the values and keep the DOM in-sync
with its props--yay! In addition, I added the necessary API hooks to allow for the mobile app to identify
table inputs and cycle through them via the forward-backward arrows.

Test Plan:
- Run Perseus.
- Create a table ([shortcut](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5Cn%5Cn%5B%5B%E2%98%83%20table%201%5D%5D%22%2C%22images%22%3A%7B%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fda8df81c78b22f5c69d477d8eabfb583968eaf84.png%22%3A%7B%22width%22%3A400%2C%22height%22%3A70%7D%2C%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fb59fc02ca1aae800977b8793ed22f647a1aa75ee.png%22%3A%7B%22width%22%3A425%2C%22height%22%3A150%7D%7D%2C%22widgets%22%3A%7B%22table%201%22%3A%7B%22type%22%3A%22table%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22headers%22%3A%5B%22ABC%22%2C%22DEF%22%2C%22GHI%22%5D%2C%22numRawRows%22%3A2%2C%22numRawColumns%22%3A3%2C%22answers%22%3A%5B%5B%221%22%2C%223%22%2C%225%22%5D%2C%5B%227%22%2C%229%22%2C%2211%22%5D%5D%7D%2C%22version%22%3A%7B%22major%22%3A0%2C%22minor%22%3A0%7D%7D%7D%7D%2C%22answerArea%22%3A%7B%22type%22%3A%22multiple%22%2C%22options%22%3A%7B%22content%22%3A%22%22%2C%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22itemDataVersion%22%3A%7B%22major%22%3A0%2C%22minor%22%3A1%7D%2C%22hints%22%3A%5B%5D%7D)). Try:
    - Changing (both increase and decrease) the number of rows or columns.
    - Grading!
    - Inputting headers in the editor.
    - Etc. All functionality should be ~the same as before.
    - To confirm that the editor props haven't changed, you can also load an existing item from the site ([example](http://khanacademy.org/item/xae7578b4ca323cee)) and paste in its JSON.
- Run the mobile app (with this version of Perseus JS + CSS).
    - Go to "Visualing and interpreting relationships between patterns."
    - Try cycling through the inputs, writing in the scratchpad, etc.

Reviewers: jack

Reviewed By: jack

Subscribers: mgp

Projects: #mobile

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