Add the ability to set the workqueue size

* Allow users to set the size of the GirlFriday::WorkQueue by setting
  Blather::Client.queue_size.

* The queue size is passed in as a named parameter in the last argument to
  Blather::Client.setup

* If the queue size is 0, then #receive_data will process the incoming stanza
  immediately.
Shutdown GirlFriday::WorkQueue on connection close

Since the handler_queue is lazily initialized, all we have to do at connection
close time is shutdown the queue and nil it out. Any subsequent reference (such
as in #receive_data) will automatically re-create it, if necessary.
Always allow user to #close a Blather::Client

* If it failed to open properly, @stream might not be set, which means
  that calling #close on the Blather::Client might not be safe (it will
  raise a StreamNotReady error in the bowels of EventMachine).

* If a stream is not connected (i.e., there is no @stream or it's been
  stopped due to EM having called #unbind on it), then don't try to
  close it on Blather::Client#close