Plug.Conn.Query.encode, creates query strings.

Here's the `encode` complement to the already-implemented `decode` function.

I would have liked to use `URI.encode_query` on the final list of field/value tuples, but that encoding function encodes the `[` and `]` characters, which makes it pretty unreadable, so I just did my own escapes and joins with `&` and `=`.

Always open to suggestions and criticism! :)
Hrm, there must be a better way to handle it then. Maybe part of the issue is that we are returning lists instead of strings from the inner functions. If they always returned strings, we could make the encode implementation to simply be a call to `encode_pair` + a guard check.