feat(request): support HTTP redirects

Requests sent by httpverbs::get are automatically redirected; other
methods and the request object itself do not redirect by default.

The request::allow_redirects member function enables automatic
redirection, with a maximum redirects of 5.  The number is chosen
because it is mentioned in rfc2616 as a possible limitation, and
a RESTful API is expected to minimize redirects in a request.

For the record, curl command line's maximum redirects is 50, Python
Requests library's is 30, old versions of IE used 10.

A redirected POST request is still POST, unlike the browsers' behavior
(POST-to-GET conversion).  The new behavior is encouraged for a
RESTful API.

Note that libcurl performs the non-RFC conversion by default for the
POST requests issued with CURLOPT_POST or CURLOPT_HTTPPOST.  But this
library create POST requests with customized request types, so there
is no need to use CURLOPT_POSTREDIR to cancel the conversions.

The header_dict::clear member function is added.