Fix up some bucket lifetime issues and support multiple open SSL contexts.
Fix up some bucket lifetime issues and support multiple open SSL contexts.

* buckets/ssl_buckets.c
  (ssl_encrypt): Have the pending stream share our stream's bucket; when
  reading from our pending stream (i.e. already decrypted data), read the
  bufsize limit not the ssl_len limit; if we don't see an EOF from our
  aggregate bucket when our stream is exhausted, return that instead.
  (init_ssl_libraries): New function that should be called only once.
  (ssl_init_context): Support multiple SSL contexts open at once; delay
  creation of the pending buckets until we have the associated streams
  available.
  (ssl_free_context): Only destroy the pending buckets if we have them.
  (serf_bucket_ssl_decrypt_create, serf_bucket_ssl_encrypt_create): Create
  our pending buckets.
  (serf_ssl_encrypt_destroy_and_data): Destroy our pending encryption
  bucket; Always reset our context's encrypted stream and databuf status when
  we replace the underlying stream; create a pending bucket if we need to.

jandre/serf,jandre/serf,jandre/serf,jandre/serf