always pass handshakeInitializationPacket to ChangeUser

If the queue is empty before calling a ChangeUser sequence, the sequence will be started without being passed the handshake packet. This makes sure it gets passed.

Additionally, validateEnqueue now has a test that handeshake() was called before changeUser().

fixes #374
add mysql options for travis

run changeUser tests on travis
DRY: creates Protocol#_startSequence
Merge pull request #618 from seanmonstar/change-user-packet

always pass handshakeInitializationPacket to ChangeUser