adding tern analysis to ES

can now generate needles for symbols, properties, and functions

factor out common stuff

fixed missing import

Fixed formating to make flake8 happy

Changed span to extent

updated requirements

accidently changed this...reverting

fixed documentation and other fixed from PR