fixed get-name of JS
Addressing Issue #1. Comparison quality improved by quite a bit - much less "noise" of small fragments of code.

Added a field to Node which records the "context" of the node. Nodes with the same context are either in the same function or outside of any function. Same-context nodes will use a small *inner-move-size* when determining moves and will only move within the context.