Fix mixing of :query-params and :query-string during lazy request
generation based on pagination data. This fixes an infinite looping
problem described below:

When creating a new request from a pagination link, :url is set in the
new request map, with correct parameters like limit, since, etc.

This request is then passed through request middleware, in particular
auth/wrap-facebook-access-token causes :query-params in the request
map to be populated.

This interaction is poor because of how wrap-url and wrap-query-params
interact with each other. wrap-url will deconstruct :url into
:query-string, but wrap-query-params will later overwrite
:query-string with the contents of :query-params.

In our case, this means that the access token will be the only
parameter in the string during each successive lazy request, resulting
in an infinite loop as the offset is lost and we repeatedly request
the first page of results.

The fix implemented is to take the next URL given from Facebook, and
parse it into :query-params instead of relying on :url to propogate
query parameters.

Discovering and triggering this bug is complicated by the fact that it
often will only be triggered if *facebook-auth* is defined when the lazy
evaluation occurs.

For example, this will trigger the bug:

    (with-facebook-auth auth (count (client/get [USER :feed])))

But this will not:

    (count (with-facebook-auth auth (client/get [USER :feed])))
Fix mixing of :query-params and :query-string during lazy request generation.

This fixes an infinite looping problem that occurs when attempting to
generate pagination requests. When creating a response from a
pagination link, :url is set in the new request map, with correct
parameters like limit, since, etc.

When processing request middleware, auth/wrap-facebook-access-token
causes :query-params in the request map to be populated.

This interaction is poor because of how wrap-url and wrap-query-params
interact with each other. wrap-url will deconstruct :url into
:query-string, but wrap-query-params will later noverwrite
:query-string with the contents of :query-params.

In our case, this means that the access token will be the only
parameter in the string during each successive lazy request, resulting
in an infinite loop.

The fix implemented is to take the next URL given from Facebook, and
parse it into :query-params instead of relying on :url to propogate
query parameters.

Discovering and triggering this bug is complicated by the fact that it
often will only be triggered if *facebook-auth* is defined when the lazy
evaluation occurs.

For example, this will trigger the bug:

    (with-facebook-auth auth (count (client/get [USER :feed])))

But this will not:

    (count (with-facebook-auth auth (client/get [USER :feed])))