Fix generation of .app file from Makefile. Fixes #107.

The sed script incorrectly generated the `modules` section by having one set to much of { and }. This patch fixes the problem by removing it.
Major cleanup of the test cases:

* Enable cover compilation.
* Use a more proper CT_RUN invocation
* Include runs for emysql_util in the game
Updates documentation.
Improve test handling and try to lure travis to understand the tests.
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.
Move functions away from `emysql_util` and into their right modules.

Rather than having emysql_util as a "keep everything that doesn't belong elsewhere", we
now handle it as a real helper module for a lot of work. It is now cleaned up for more than it was.
Deprecate `emysql_util`, move functionality to `emysql`

To build a nice API, we need to hide a lot of internal modules in the code base. The goal
of this change is to make `emysql` the sole entry point for the module and its use. To retain
backwards compatibility, we still handle calls to `emysql_util`, but this use is on a deprecation
track for the next major release.

While here:

* Fix the `emysql_util_SUITE` so it actually tests something. It would accept any output.
* Begin simplifying the code base by removing stuff that is not needed.
Pushing in the missing conversion routine module. Remove tracer.
Update the cover spec, mark modules as private.
Update EDoc.
Go over documentation and update it so we don't refer to deprecated functions.

* Improve documentation a bit as well.
* Clean out test sections not relevant anymore.
More documentation updates, bump to version 4.1.0
Move commands into `emysql_conn`, split `emysql.hrl`.

Emysqls headers now have an internal and an external part. While here, we are striving
to move commands to "local" files where possible, so we avoid having to include them in
each and every file we compile or work with.
Refactor length-coded-"binaries" and l-c-strings.

There is a much nicer Erlang idiom by pattern matching on the top-level for these
constructions. No need to use an `if` to handle this.
Choose better naming in the `tcp` ends of things.
Move the emysql_util_SUITE tests into basics_SUITE.

This vastly improves the coverage in the basics suite and puts us on the right track.
w.r.t. getting more coverage in the project.
Remove the last remnants of `emysql:modules()`.