JS Code Hints Crash Preventer

1. Update Tern
2. Implement timeout

cc @dangoor 

Is this sufficient communication to user?

Note that Tern caches results, so file is not processed again until edited. This works well enough that I don't know if we need to keep track of file in preferences. If we do add file to list in preferences, then user may have to learn how to remove it list.