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.

TODO list:
- ~~writing tests~~ (half-done, will need to be updated after the other two items are complete)
- ~~do parsing in a web worker~~ (done)
- ~~search for variable declarations in the web worker~~ (done)
- ~~handling variables inside functions and scoping~~ (save for another pull request)
- ~~method completion for methods defined on the prototype~~ (save it for another pull request)
Add an additional option that checks to see if this should be turned on, or not.