Preserve PJS prototype function closures and scope from `with` on instances

Summary: Fixes T3129.

Test Plan:
- Load various top programs, and make sure they work as they should.
- Load the towers of hanoi scratchpad, make sure it works when changing the moving of plates on pegs:
  https://gist.githubusercontent.com/pamelafox/e71dd4c12a39df7ca10f/raw/0f9faeb62f8bdc3cc4db6c2f433c792faeb51ba3/gistfile1.js
- Run live-editor tests

Reviewers: pamela, john

Subscribers: #cs

Maniphest Tasks: T3129

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