fix hackney_manager child spec: supervisor -> worker
Make hackney_pool ets from hackney_manager

Making it from the supervisor is unnecessary. Trying to create a new named
ets table that already exists will crash, like when supervisor:init is called
again during release upgrades, to check if the child specs have changed.
add a start-dev script, for convenience
Merge pull request #58 from irccloud/fix-child-spec

fix hackney_manager child spec: supervisor -> worker
Merge pull request #59 from irccloud/fix-pool-ets-creation

Make hackney_pool ets from hackney_manager
Merge pull request #60 from irccloud/add-start-dev-script

add a start-dev script, for convenience
s/pool_size/count
make sure to retrieve all headers in hackney_headers

This change make sure we can retrieve all headers using a duplicated key
like the cookies.
add support for cookies.

This change add support for cookies in hackney. There is now a `cookie`
option that can be passed to the request. It can be a sinle cookie or a
list of cookies.

To parse cookies from the response a function `hackney:cookies/1` has
been added. It return all the cookies as a list of [{Key, Value}] .
sync doc
allows creation of cookies dynamically.

A user can now pass {Name, Value, Opts} to the cookie option so he
doesn't have to create the cookie using `hackney_cookie:setcookie/3` .
match {Name, Value} in the cookie option
refactor hackney_multipart.

move the private functions at the bottom
add a multipart parser
move multipart request stream ihandling in hackney_multipart
add functions to parse headers
add hackney:stream_multipart/1 and hackney:skip_multipart/1

add the possibility to parse multipart responses.
handle mixed multipart

ex:

    1> hackney:start().
    ok
    2> {ok, S, H, R} =
hackney:get(<<"http://localhost:5984/testdb/bc643432598834a0c669275905000047?open_revs=all">>,
[{<<"Accept">>, <<"multipart/mixed">>}], <<>>, []).
    {ok,200,
        [{<<"Transfer-Encoding">>,<<"chunked">>},
         {<<"Server">>,
          <<"CouchDB/1.3.0 Rcouch/rcouch-0.7.2-4-g2f8c3b3 (Erlang
OTP/R16B02)">>},
         {<<"Date">>,<<"Tue, 17 Dec 2013 22:46:25 GMT">>},
         {<<"Content-Type">>,
          <<"multipart/mixed;
boundary=\"bb124fea1f12a13f9d575ba5ec35642b\"">>}],
        #Ref<0.0.0.91>}
    3>
    3> hackney:stream_multipart(R).
    mp_mixed
    4> hackney:stream_multipart(R).
    {headers,[{<<"Content-Type">>,<<"application/json">>}]}
    5> hackney:stream_multipart(R).
    {body,<<"{\"_id\":\"bc643432598834a0c669275905000047\",\"_rev\":\"2-7fc38de4a78235b650ca135ad637e268\",\"_attachments\":{\"lt232"...>>}
    6> hackney:stream_multipart(R).
    end_of_part
    7> hackney:stream_multipart(R).
    {headers,[]}
    8> hackney:stream_multipart(R).
    {body,<<0,0,27,72,87,71,84,73,2,16,0,0,109,110,116,114,
            82,71,66,32,88,89,90,32,7,219,0,...>>}
    9> hackney:stream_multipart(R).
    end_of_part
    10> hackney:stream_multipart(R).
    mp_mixed_eof
    11> hackney:stream_multipart(R).
    end_of_part
    12> hackney:stream_multipart(R).
    eof
refactor to make the HTTP parser reusable.

WIP: this change is extracting hackney HTTP parser from the module
`hackney_response` to make it reusable.
fix hackney_http

Now the parser is able to handle the responses from the HTTP parser in
`hackney_http` .