Add iframe/program widget

Summary:
This adds an iframe widget that can be used for embedding
generic iframes or our programs.

For programs, we can pass settings to them that are exposed
 via Program.settings(), and they can communicate success
 via Program.runTest(), like:
  Program.runTest(function() {
           if (searchOrder[0] === 7) {
               println("Sending true");
               return true;
           } else {
               println("Sending false");
               return false;
           }
        });

Non-program iframes can also parse the settings from the URL
 and communicate via iframe, as long as they follow the
 protocol ({forPerseus: true, passed: true/false}

This is primarily for use with the Algorithms curriculum,
but will likely also be useful for Physics, Chemistry, etc.

Test Plan:
- I tested with the following in test.html:

```
"iframe 1": {
                "type": "iframe",
                "graded": true,
                "options": {
                    "url": "http://127.0.0.1:8080/cs/ignore-for-testing/6258007868440576/embedded?buttons=no&embed=yes&editor=no&author=no",
                    "width": "400px",
                    "height": "400px"
                },
                "version": {
                    "major": 0,
                    "minor": 0
                }
            },
```

Reviewers: jack

Reviewed By: jack

Subscribers: charlie, #cs, #perseus

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