Improve promises testing and error reporting

Transaction.js
  add sqlstate 25000 to transaction state errors

MySQLConnectionPool.js
  add sqlstate 08000 to connection failure errors

PromisesTest.js
  add checks that err.message and err.sqlstate are strings

harness.js
  improve comparisons to accommodate null and undefined arguments
Improve user documentation for Errors

API-documentation/Errors
  Error must contain message, stack, sqlstate
  Error may contain cause

MySQLConnectionPool.js
  Create a new Error object with a new message and stack for connection failures
  Include the sqlstate and cause (underlying connection err)
CharsetTest.js fail instead of hang on insert error
Change default charset for connections to UTF8MB4

MySQLConnectionPool.js
  allow user to specify mysql_charset in connection properties
  send the settings on each new connection to the database
    SET character_set_client
    SET character_set_connection
    SET character_set_results

mysql_service_provider.js
  set the default to UTF8MB4 in getConnectionProperties
Fix comment on MySQLConnectionPool; fix error return from new connection
Remove ConcurrentSubTest support from test driver and refactor the tests that used it.
Return true from synchronous tests
merge
lint fixes
Remove documentation file for "Context" and copy all of Context's docs
into both Session and Batch.
Revise all docs to include promises.
Shorten too-long strings in CharsetTest
Improve error handling when NDB connection fails