v1 of the simulation widget

Summary:
This ungraded widget allows users to design a simulation around surveying or sampling.
The basic functionality is that the user can set some parameters for a survey, run it, and view
the results, using them to answer questions through subsequent widgets. The editor interface allows
question writers to specify certain text and input types that shape the user's experience designing
the survey, such as whether they use a proportion or a percentage.

Test Plan:
- Run Perseus.
- Check out this [demo item](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22A%20survey%20was%20conducted%20in%20your%20local%20community%20to%20estimate%20the%20mayor's%20approval%20ratings.%20Out%20of%20100%20people%20sampled%2C%2040%25%20said%20they%20approved%20of%20the%20mayor.%20Use%20the%20simulator%20below%20in%20answering%20the%20following%20questions.%5Cn%5Cn%5CnWhat's%20the%20highest%20that%20the%20mayor's%20_true_%20approval%20rating%20could%20be%20such%20that%20the%20survey%20of%20100%20people%20could%20return%20a%2040%25%20approval%20rating%20with%20%3E%205%25%20probability%3F%5Cn%5B%5B%E2%98%83%20radio%201%5D%5D%5Cn%5Cn%5B%5B%E2%98%83%20simulator%201%5D%5D%22%2C%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%22radio%201%22%3A%7B%22type%22%3A%22radio%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22choices%22%3A%5B%7B%22content%22%3A%22~40%25%22%2C%22correct%22%3Afalse%7D%2C%7B%22content%22%3A%22~50%25%22%2C%22correct%22%3Atrue%2C%22clue%22%3A%2260%25%20and%2070%25%20are%20too%20high%2C%20but%2040%25%20is%20too%20low.%22%7D%2C%7B%22content%22%3A%22~60%25%22%2C%22correct%22%3Afalse%7D%2C%7B%22content%22%3A%22~70%25%22%2C%22correct%22%3Afalse%7D%5D%2C%22randomize%22%3Afalse%2C%22multipleSelect%22%3Afalse%2C%22displayCount%22%3Anull%2C%22noneOfTheAbove%22%3Afalse%2C%22onePerLine%22%3Atrue%7D%2C%22version%22%3A%7B%22major%22%3A0%2C%22minor%22%3A0%7D%7D%2C%22simulator%201%22%3A%7B%22type%22%3A%22simulator%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22xAxisLabel%22%3A%22Approval%20Rating%20(%25)%22%2C%22yAxisLabel%22%3A%22Number%20of%20trials%20with%20that%20rating%22%2C%22proportionLabel%22%3A%22Simulated%20approval%20rating%20(%25)%22%2C%22proportionOrPercentage%22%3A%22percentage%22%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 varying the parameters of the simulation:
    - Verify that they stay within reasonable upper bounds.
    - Verify that they don't allow you to go below zero.
- Try varying the editor parameters:
    - Verify that switching between proportion and percentage mode works as you'd expect.
    - Verify that the text labels change when you change them in the editor.
- Now, run the simulation a bunch of times with different parameters.
    - Verify that the upper-right circle (% below) works as expected and becomes complete when you mouse all the way over to the left or right.
    - Verify that the axis labels don't become jumbled as the survey parameters grow.
- Try grading and verify that you earn 0/0 points.

Reviewers: jack

Reviewed By: jack

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