Use `connection._protocol._ended` state
maintain `connection.state` instead

@mickhansen I believe that problem was occurring because
“protocol_error” is a faulty state, not a valid one.
Copy the options object in association getters
code coherence
Merge pull request #2453 from findhit/hotfix/mysql-connection-validate

dialects.mysql.connection-manager: Use `connection._protocol._ended` state on $validate
dialect.mysql.connection-manager: handleDisconnects
add `.destroy` proxy method into CM
Merge pull request #2450 from findhit/feature/connection-manager-handle-disconnects

dialect.mysql.connection-manager: handleDisconnects
Add reference to Instance to public API
Merge pull request #2473 from overlookmotel/instance-made-public

Add reference to Instance to public API
Merge branch 'master' into feature/ms-sql-server-test