Follow Location header with relative URL

Created specs for HTTY::Request#follow method in
spec/unit/request_follow_spec.rb because spec/unit/request_spec.rb it's
a little big. Now follow can follow locations that are: URIs, absolute
paths and relative paths
Merge pull request #98 from gabrielelana/follow-relative-path

Follow Location header with relative URL
Switch to configuration that is agnostic of Ruby version manager
Safely encode reserved parameters in query string

There's a lot of confusion about this, the default implementation of
URI.escape is marked as "obsolete", CGI.escape does another work, a safe
solution seems to use https://github.com/sporkmonger/addressable without
adding a new dependecy I found that encode all not unreserved characters
(unfortunately that doesn't mean all reserved characters) it's a pretty
safe solution, see http://tools.ietf.org/html/rfc3986#section-2.3
query-add and query-set arguments validation

Validate the number of arguments when `perform` is called
Remove query string from uri when empty

When `URI.query` is an empty string `URI.to_s` will leave a trailing
question mark, the true "emptiness" for query string is obtained with
`nil`
Don't add nil as last request

A command could yield a valid request but also nil so we need to check
that otherwise nil will be added as next request blowing up everything
Moved #cookie? from Command to Request

A tiny bit of therapeutic refactoring, removed feature envy
Merge pull request #104 from gabrielelana/issue-102

Don't add nil as last request
Merge pull request #100 from gabrielelana/issue-76

Safely encode reserved parameters in query string
Merge pull request #101 from gabrielelana/issue-71

query-add and query-set arguments validation
Merge pull request #103 from gabrielelana/issue-64

Remove query string from uri when empty
Merge pull request #105 from gabrielelana/move-cookie-method

Moved #cookie? from Command to Request
Update copyright years
Credit contributor Gabriele Lana :-)
Update contributors list
Extract query_set_all in HTTY::Request

It's public, it's documented, it's not exported as a command but could
be. Extracted for now to be used in the `follow` method refactoring that
is to be able to call it from `HTTY::Response#follow` method
A response could be followed only once

When you follow a response more than once you will obtain the same
request this will bring back idempotency to the `follow` command in case
the `Location` value had been a relative path

Moreover it make more sense now that `follow` it's a method available on
the response object because you follow the response not the request
Merge pull request #106 from gabrielelana/issue-99

Follow state is kept inside the response

Fixes #99
Remove never used initialize_copy method