Move test password generation to the test suite.
Move authentication code into `emysql_auth`

A lot of the code, which is only used by the authentication code lived in `emysql_util`. Move all of this into the auth-code where it belongs.
Clean up the handshake code path.

* This was a literal mess.
* Introduce some more functions, and be more functional in the style
* Utilize pattern matches
* Remove dead code
* Tell the world they should not use anything in this module.
Remove calls to `exit/1` from `emysql_auth`.

There is no need to use exceptions to bail out of this module now, since the code flow is easier to handle.