Allow connect without changing database

There's no reason to require changing to a database on connect.

set_database already supported undefined, so I extended to support empty string.

Prior to this change, specifying undefined as the database caused a case error.

Now you can specify either undefined or an empty string (list or binary) to avoid
using the database on connect.

This is admittedly an edge case, but there's a good practical reason: the Sphinx
search daemon exposes a MySQL socket interface, which works very well with
Erlang MySQL drivers. It does not support changing databases.

Also includes support for database names containing dashes.