show user defined variables to the list of completions

This has a lot of limitations right now.  User variables will only show up in the completion list if they're defined in the top level.  It does, however, not suggest variables before they're defined which is nice.

It uses esprima for the parsing which it does right now inside of the ```getCompletions``` callback.  This is fine for small programs, but will cause problems with longer problems.  The plan to deal with this is do the parsing inside a worker.

Future plans include:
- writing tests
- handling variables inside functions and scoping
- method completion for methods defined on the prototype