Refactor some client codepaths, switching to state machines

Summary:
Feature: Async Client

This is preparatory work for making these codepaths usable in an async
context.  The goal is to represent the same state machine (async or
sync) via the context structure and calling function pointers that make
use of the context's data to perform io, handle results, etc.

This splits the connect codepaths into smaller units (generally
separating at the IO boundaries).  It changes the mechanism for
executing the connect sequence to mimic what the async version will do.

It also makes a state machine for the authentication flow, similar to
the connect flow -- breaking it apart at the IO points.

This doesn't change the plugin portion yet, but does make the rest of it
state machine'd.

This also changes the invocation of mysqladmin to always have
a --defaults-file to avoid picking up local my.cnf files.

Test Plan: mtr

Reviewers: pivanof, inaam-rana, darnaut

CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, liang.guo.752, chip, atcurtis, steaphan

Differential Revision: https://reviews.facebook.net/D17025
Port the Async MySQL client to 5.6

Summary:
Feature: Async Client

This diff builds loosely upon the 5.1 client work and brings async to
5.6.  It is not fully feature complete (no SSL. no compression, only
supports the default native auth) but it is sufficient for our needs and
we can extend it.

This breaks the API slightly by cleaning it up and making it more
succinct.  Code using the old async API will need to change in minor
ways (though a compatibility layer could be introduced).

This also adds a #define to indicate the nonblocking client is available.

This changes slightly the ABI and so it also renames 'libmysqlclient' to
'libwebscalesqlclient' -- however, this is compatible with almost every
use case (changes are additive only, but do include changes to some data
structures).

Test Plan: mtr, testing against internal tools

Reviewers: pivanof, inaam-rana, darnaut

CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, liang.guo.752, chip, atcurtis, steaphan

Differential Revision: https://reviews.facebook.net/D17031

Conflicts:
	scripts/mysql_config.pl.in
	scripts/mysql_config.sh