Translation of ArangoDB JS API to Node.js and Typescript.

# API Changes:

## Changed

- `ArangoDatabase#_executeTransaction` always stringifies `action`

  In ArangoDB this method would accept a function to be executed within the
  transaction. As the function is still executed inside ArangoDB while the
  surrounding code is executed in Node.js, the `action` parameter must always
  be converted to a string.

  Use the `ArangoTransaction` API (`db._createTransaction`) to avoid this issue.

- `ArangoCollection#recalculateCount()` always returns `true`

  In ArangoDB this method would return a number when running ArangoDB in
  standalone mode and `true` when running in a cluster.

- `ArangoCollection#rename()` no longer takes an optional second argument

  The second argument was undocumented and only intended for internal use.

- `ArangoCollection#count()` no longer takes an optional argument

  The argument was undocumented and had no effect when running in standalone
  mode.

- `ArangoCollection#all()` returns a cursor

  In ArangoDB this method previously returned an object wrapping an array
  cursor.

- Methods returning cursors now return `ArangoQueryStreamCursor` instead of
  `GeneralArrayCursor` by default

  When using `db._query` or `db._createStatement` you can pass
  `stream: false` to get a `GeneralArrayCursor` instead. Note that array
  cursors will load all results into memory at once.

## Removed

### ArangoDB-specific console methods

These methods are unnecessary in Node.js as the built-in `console` methods
provide the same behavior.

- `console.errorLines()`

  Use `console.error()` instead.

- `console.errorStack`

  Use `console.error()` instead.

- `console.warnLines()`

  Use `console.warn()` instead.

- `console.warnStack`

  Use `console.warn()` instead.

- `console.infoLines()`

  Use `console.info()` instead.

- `console.infoStack`

  Use `console.info()` instead.

- `console.debugLines()`

  Use `console.debug()` instead.

- `console.debugStack()`

  Use `console.debug()` instead.

- `console.logLines()`

  Use `console.log()` instead.

- Internal `console` methods:

  - `console.levelStack()`
  - `console.logLvlLines()`
  - `console.topic()`
  - `console.getline()`

### Database APIs

- `GeneralArrayCursor#execute()`

  This method had no effect in normal use.

- `GeneralArrayCursor#_skip`

  This property had no effect in normal use.

- `GeneralArrayCursor#_limit`

  This property had no effect in normal use.

- `GeneralArrayCursor#_cached`

  This property had no effect in normal use.

- `GeneralArrayCursor#_extra`

  Use `GeneralArrayCursor#getExtra()` instead.

- Internal `ArangoDatabase` methods:

  - `ArangoDatabase#_createReplicatedLog()`
  - `ArangoDatabase#_currentWalFiles()`
  - `ArangoDatabase#_replicatedLog()`
  - `ArangoDatabase#_versionFilename()`

- `ArangoDatabase#_explain()`

  This method had no effect when used non-interactively.

  Use `Statement#explain()` instead.

- `ArangoDatabase#_profileQuery()`

  This method had no effect when used non-interactively.

- `ArangoCollection#documents()`

  Use `ArangoCollection#document()` instead.

- `ArangoCollection#toArray()`

  This method was not recommended for production use. If you want to access all
  documents in a collection, you can use `ArangoCollection#all()` instead,
  which returns a streaming cursor instead of loading all documents into
  memory at once.

- `ArangoCollection#load()` and `ArangoCollection#unload()`

  These methods should not have any effect in normal use.

- Internal `ArangoDatabase` methods and properties:

  - `ArangoDatabase#_endpoints()`

- Internal `ArangoCollection` methods and properties:

  - `ArangoCollection#_binaryDocument()`
  - `ArangoCollection#_binaryInsert()`
  - `ArangoCollection#_id`
  - `ArangoCollection#_revisionTreeSummary()`
  - `ArangoCollection#estimatedSize()`
  - `ArangoCollection#globallyUniqueId()`
  - `ArangoCollection#path()`
  - `ArangoCollection#planId()`
  - `ArangoCollection#version()`

- Deprecated `ArangoCollection` index helpers (use `ensureIndex` instead):

  - `ArangoCollection#lookupFulltextIndex()`
  - `ArangoCollection#lookupHashIndex()`
  - `ArangoCollection#lookupIndex()`
  - `ArangoCollection#lookupSkiplist()`
  - `ArangoCollection#lookupUniqueConstraint()`
  - `ArangoCollection#lookupUniqueSkiplist()`
  - `ArangoCollection#geo()`
  - `ArangoCollection#ensureFulltextIndex()`
  - `ArangoCollection#ensureGeoConstraint()`
  - `ArangoCollection#ensureGeoIndex()`
  - `ArangoCollection#ensureHashIndex()`
  - `ArangoCollection#ensureSkiplist()`
  - `ArangoCollection#ensureUniqueConstraint()`
  - `ArangoCollection#ensureUniqueSkiplist()`
  - `ArangoCollection#ensureVertexCentricIndex()`

- Deprecated `ArangoCollection` simple query methods (use AQL instead):

  - `ArangoCollection#closedRange()`
  - `ArangoCollection#fulltext()`
  - `ArangoCollection#lookupByKeys()`
  - `ArangoCollection#iterate()`
  - `ArangoCollection#near()`
  - `ArangoCollection#range()`
  - `ArangoCollection#removeByKeys()`
  - `ArangoCollection#within()`
  - `ArangoCollection#withinRectangle()`

- Deprecated `@arangodb/simple-query` module

  Use AQL queries or the equivalent `ArangoCollection` methods instead.

### Internal exports

- Internals exposed by the `@arangodb` module:

  - `checkParameter()`
  - `checkAvailableVersions()`
  - `defineModule()`
  - `enterpriseLicenseVisibility()`
  - `inspect()`
  - `output()`
  - `print()`
  - `printf()`
  - `printObject()`
  - `printTable()`
  - `sprintf()`
  - `stringPadding()`
  - `throwBadParameter()`
  - `throwFileNotFound()`
