Fix sharing scopes

This fixes #13 which has been causing me a lot of problems lately.  This change makes the scope names be the Full Path to the given function.  This does make them much longer, but it's helpful from the point of view that it would be much easier to find the function node from the scope name.

This may also prove very useful when we start support ES6 `let`, `const` etc. which are block scoped, as we will need to add block names for scoping as well.