Introduce @QueryMap and encoded variant.

The existing version was very broken. This standardizes behavior under two new annotations which define how they apply to the URL properly.
Merge pull request #394 from square/jw/query-map

Introduce @QueryMap and encoded variant.