With this change TabsBase objects will retain a reference to the TabsManager they belong to, so they can ask it if they're the active tab or not.
This removes the possibility for bugs like activating an unmanaged tab, or having more than one active tab, etc.
- created `getErrorMessage` function which takes in an error string or any type of error object and returns the correct error message
- replaced `error.message` with `getErrorMessage` since `error` could be a string in some cases
- merged sendNotificationForError.ts with ErrorHandlingUtils.ts
- some minor refactoring
In part 2, I will make the following changes:
- Make `Logger.logError` function take an error message string instead of an error object. This will reduce some redundancy where the `getErrorMessage` function is being called twice (the error object passed by the caller is already an error message).
- Update every `TelemetryProcessor.traceFailure` call to make sure we pass in an error message instead of an error object since we stringify the data we send.
* Remove old resource tree and its various components
* Fix stored procedure, udf, trigger not always deleting when context menu option chosen
* Reformat and fix eslint warnings
* Remove CommandButtonOptions