Determine port based on scheme and allow arbitrary ports.
SSL support implemented

utilizes rust-ssl or rust-nss to optionally provide SSL services.
Get the OpenSSL patch compiling
Rust update: DeepClone was removed
Merge pull request #64 from Ogeon/master

Rust update: `DeepClone` was removed (mozilla/rust#12706)
Remove ~str pattern (obsolete).
Rename things from std::comm (mozilla/rust#12815).
logging macros are moved out to the separate crate `log`.
Replace ~[T] to std::vec_ng::Vec<T> as possible
Replace Vec::from_slice([...]) to vec!(...) macro

to improve readability and effecienty. Thanks to @Ogeon.
Rust update: `libextra` is deleted. `extra::url` has moved out to a separate library
Merge pull request #66 from Kroisse/liblog

Logging macros are moved out to the separate crate `log`.
Merge pull request #65 from amesee/rust-update-libextra-url

`libextra` is deleted. `extra::url` has moved out to a separate library.
Merge pull request #67 from Kroisse/vec_ng

Replace old owned vectors to std::vec_ng::Vec<T> as possible
Lots of SSL work.

This involves significant updates for Rust and rust-http changes, especially
the explicit ``IoResult`` stuff.

I've restructured it quite a bit to better suit my notions of how it should be
done, and also introduced a new ``./configure`` step before you can ``make``,
which will detect OpenSSL or NSS (I bet that my NSS detection in ``configure``
is incorrect).

The only change in runtime behaviour is that attempting to connect to an HTTPS
site when not compiled with SSL support will return an error (of kind
``InvalidInput``) rather than silently, confusingly and dangerously (should the
server accept it rather than rejecting it) sending plain text.
Rust update: `std::vec_ng`->`std::vec` and `std::vec`->`std::slice` + removed unused imports
Rust update: `TcpStream::read_bytes` -> `TcpStream::read_exact`
Rust update: Switched to the new inner macro syntax, with a quick fix for the `headers_mod` macro
Merge pull request #69 from Ogeon/master

Rust updates: vec + slice, read_bytes and inner attributes
Follow the latest changes up to 2014-03-23

related issues of mozilla/rust:
- mozilla/rust@0305ed5d22e4  std: Add Vec to the prelude

already fixed in #69:
- mozilla/rust#12772  rename std::vec -> std::slice
- mozilla/rust#13028  rename std::vec_ng -> std::vec
- mozilla/rust#12907  std: Rename {push,read}_bytes to {push,read}_exact