avoid name collision with RabbitMQ for the connection record by renaming it to emysql_connection
Fixup of hdiedrich's - Added wait queues per pool - issue #20
Fixup of ransomr's - Race condition fixes to emysql_conn_mgr:wait_for_connection/1 - issue #9
Removed unecessary duplication of code.
Be more explicit in result handling.
Do not spawn a process to close stale connections.

  This ensures that the old connection is closed before a new one is opened
  and so fixes possibility of opening more connections than the mysql server
  is configured to allow.
Removed costly and unecessary unprepare statement call when closing a connection.

  The server will remove them automatically when the connection is closed.
Removed unecessary duplication of code fixing minor semantic issue.

  Ensure the pool is removed from the connection manager before closing
  the connections.  Not that this really matters as we are shutting down.
Fixed wrong Connection object from being queued.

  The new Connection object could have been modified externally,
  so we must use store it and not the old one.
Refresh locked_at timestamp when passing connection to waiting pid.
Ensured tcp socket is closed when open_connection fails.
No need to specify module on internal function calls
Fixed starvation of waiting processes

  When a connection is replaced it was not given to a
  waiting process. This fixes that. Also when additional
  connections are added to the pool, waiting processes
  are now served from those connections.
Unified connection locking code
Merged internal lock_connection and lock_connection_or_wait handlers
Merged internal replace_connection and unlock_connection handlers
Avoid orphaning opened connections in emysql_conn:open_connections/1.
Fixed code path allowing a connection to remain locked forever.
Fixed bad arity bug introduced in 'Added wait queues per pool'.
Added wait_for_connection/2 for specifying a lock wait timeout.