* check to see whether options is available
* removing options state and using _modelOptions
* removed additional space
* making options getter private as not intended to expose
* adding context
* apply extension changes
* shimming disconnect
* add data explorer context menu and add disconnect to it
* clean up shim code; better handle errors
* remove tpromise
* simplify code
* add node context on data explorer
* formatting
* fix various errors with how the context menus work
* Fixed#4181 and #4167
The problems are:
- When change Kernel, setProviderIdForKernel switches Kernel first. So when we switch kernel across provider for exmple from PySpark3 to SQL. The Kernel is set SQL already in ClientSession.changeKernel. Then we lost oldKernel info.
The fix is cache the old session in model before switch and use it to get the correct context
- SQL Kenerl could make mulitple connects from "Add new connection". While we didn't track them, those connections didn't close properly when close the notebook
The fix is saving the connections made from "Add new connection" in model. and close them and activeConnection when close notebook
Problem is not solved yet in this PR:
- Didn't shutdown Jupytper when swich kernel from spark kernel to SQL.
* adding context
* apply extension changes
* shimming disconnect
* add data explorer context menu and add disconnect to it
* clean up shim code; better handle errors
* remove tpromise
* simplify code
* Add azdata.d.ts for new extensibility APIs
* Update azdata typing files for connection API proposal
* Add implementation for azdata module
* Fix build break in agent
- Fixes#4129 Overlapping command help windows in notebook
- Do not show parameter hints for inactive cells, to avoid them hanging around when no longer selected
- Fixes#4116 Notebooks: Intellisense Doesn't Work using Add New Connection
- Move connect/disconnect logic to 1 place (code component) instead of 2
- Handle the case where you connect after choosing active cell. We now hook to the event and update connection
- Fix issues in sql session manager where result outputs 0 rows. This was failing to show the empty resultset contents, which is a regression vs. query editor. It also put unhandled error on the debug console
- Fix#3913 Notebook: words selected in other cells should be unselected on cell change
Note: after fix, now looks as follows. Need to do follow up to get correct grid min height

* added initial data explorer viewlet
* added dataexplorer contribution point
* removed test view
* remove unused imports
* inital data source, needs work
* add shim for ext host
* formatting
* making the necessary changes to use OE for tree view; need to look at TreeUpdateUtils.connectAndCreateOeSession
* formatting
* shimming oe more
* update to add correct context
* working cross provider; need to fix connection
* connection works but it adds the connection to the oe for some reason
* formatting
* add custom connection dialog code path
* hashing between trees
* added flag and tests
* add id maps to handle multiple nodepaths
* add necessary car edit parts
* keep current behavior in prodc
* fix tests
* address comments
* update comments to be more informative
* finish merge
* update comments
* fix whitespace
* Move to using notebook language by default, with override in cell
* Update cell language on kernel change
* Tweak language logic so that it prefers code mirror mode, then falls back since this was failing some notebooks
* Add new package.json contribution to define language magics. These result in cell language changing. Language is cleared out on removing the language magic
* Added support for executing Python, R and Java in the SQL Kernel to prove this out. It converts to the sp_execute_external_script format
TODO in future PR:
* Need to hook up completion item support for magics (issue #4078)
* Should add indicator at the bottom of a cell when an alternate language has been detected (issue #4079)
* On executing Python, R or Java, should add some output showing the generated code (issue #4080)
* working on formatting
* fixed basic lint errors; starting moving things to their appropriate location
* formatting
* update tslint to match the version of vscode we have
* remove unused code
* work in progress fixing layering
* formatting
* moved connection management service to platform
* formatting
* add missing file
* moving more servies
* formatting
* moving more services
* formatting
* wip
* moving more services
* formatting
* move css file
* add missing svgs
* moved the rest of services
* formatting
* changing around some references
* formatting
* revert tslint
* revert some changes that brake things
* formatting
* fix tests
* fix testzx
* fix tests
* fix tests
* fix compile issue
* Greatly reduce time to generate html table string
* change outer tag to table instead of html
* address PR feedback for more descriptive variable name