Rewrite SSL buckets to work with pipelined connections.
Rewrite SSL buckets to work with pipelined connections.

* buckets/ssl_buckets.c:
  (bucket_list_t): Copied from aggregate buckets.
  (serf_ssl_stream_t): Abstract structure to store encrypt/decrypt streams.
  (ssl_context_t): Alter databuf to be a pointer to the encrypt/decrypt databuf;
  Leave a pointer to 'our' stream so that we can clean it up later.
  (bio_bucket_read, bio_bucket_write): Correct to use correct stream.
  (ssl_decrypt, ssl_encrypt): Now receive serf_ssl_context_t; read from
  decrypt stream.
  (ssl_init_context): Move to below ssl_encrypt/ssl_decrypt; initialize
  new databufs and buckets; 
  (ssl_free_context): Rearrange; clear decrypt/encrypt pending buckets.
  (serf_bucket_ssl_create): Remove unnecessary arguments.
  (serf_bucket_ssl_decrypt_create): Point to the decrypt databuf and stream.
  (serf_bucket_ssl_encrypt_create): Point to the encrypt databuf and stream;
  if we have multiple requests, append our request to the list.
  (serf_ssl_destroy_and_data): Don't delete stream...
  (serf_ssl_decrypt_destroy_and_data): Delete our stream and call delegate.
  (serf_ssl_encrypt_destroy_and_data): Advance the shared encryption stream
  when we are deleted; delete our stream and call delegate; abort() otherwise.
  (serf_ssl_read, serf_ssl_readline, serf_ssl_peek): Use databuf pointer.
  (serf_bucket_type_ssl_encrypt, serf_bucket_type_ssl_decrypt): Call delegate
  destroy function.


git-svn-id: 683495cb1553624b05a54e2ba9533425f69cf277@230 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845

coapp-packages/serf,coapp-packages/serf,coapp-packages/serf