* Avoid lodash typecheks
Lodash is quite big project. Even with direct imports it loads [tons](https://github.com/knex/knex/pull/3804) of
code and still bloats node_modules. Especially since lodash mostly used
as a polyfill for modern features.
In this diff I attempted to reduce lodash usage by replacing type checks
with `typeof` operator which might be sufficient.
Also replaced lodash/isObject with custom simplified utility which does not
consider functions as objects and allows to simplify code in one place.
* `chai` is no longer global
* sinon is no longer globally defined
* expect(..) is no longer defined globally
* Removed obsolete eslint hints about globals
* Removed unused variable ( `expect(..)` )
* Fixed some of the tests failing with various dialect combinations
* Setup all test databases to run in docker
* Fixed test suite and updated travis to use docker
* Fixed some tests in master and disabled oracle tests while setting everything else to work again
* Changed docker to use latest postgresql alpine image
* Re-enabled all oracledb tests
* Install oracle client libs to oracle server and copy them to travis to make node oracledb package to work
* Disabled random failing oracle tests and added test to show that oracle update in transaction does not seem to work ACID
* Update package.json
* Update package.json
* Fixed linting issues
* Fixed waiting for postgres to use the same DB image that database is using.
* Removed installing oracledb driver in travis if not needed .travis.yml
* Cleaned up package.json more
* Created static name for oracledb container to allow copying files out of it on different docker versions
* Removed webpack from deps
* [#3033] fix: sqlite3 drop/renameColumn() breaks with postProcessResponse
* When postProcessResponse is configured, and client.processResponse()
returns a Promise (e.g. for custom cases such as sqlite3 dropColumn()),
then that Promise is not awaited, but handed to postProcessResponse,
which might break is (e.g. with Objection's knexSnakeCaseMappers()).
* when reinserting data in the modified table, the rows are now being
handled with the "mapped" identifiers (instead of the unmapped)
* add tests, fix hasColumn
* add hasColumn tests for add mysql + snakeCaseMappers
* Improve tests and fix more cases related to processing
* Fix SQLite-specific tests
* MySQL is not case-sensitive, pg is
* Update dependencies. Tweak ESLint rules to work more like they used to before
* Fix indentation
* Remove unnecessary escapes.
* Remove unused 'usingClause' parameter.
* Address CI failures.
* Revert "Remove unused 'usingClause' parameter."
This reverts commit aaa4d71e914faa1c4c1313c26bbdd26067b0b448.
* eslint: add ignore with todo
* dependencies: update
* Add optional parameter fetchAsString to oracledb
* Add some checks to oracle fetchAsString
* use const instead of let
* add fetchAsString test
* change const to var in tests
* move oracle driver specific test to bottom
* fix fetchAsSting multiple instance
* Fix tests
* replace const to var in test
* Rework Oracle fetchAsString tests
* remove const
* remove done and timeout
* Adding external authentication capability as mentioned in https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
* Add unit test for externalAuth
* Cover the connection string part
* Update documentation
* fix spaces
* Hide the fake Oracle server error
* minor grammar changes and spaces changes