Added support for request headers.

This change allows for either hardcoded or dynamic request headers to be specified using a similar approach to retrofit, but with a few differences.

* Rather than wire up global headers via a request interceptor, the `HeadersAttribute` can be added directly to the interface.
* Instead of dumping out the same header multiple times, redefining it will overwrite the previous value in the following order:
  1. Hardcoded on interface (lowest priority)
  2. Hardcoded on method
  3. Dynamic on parameters (highest priority)

I'm keen to hear what you think. If you're happy with the approach as it is, I'll make another commit to update the README. (I figured I'd hold off on that so I don't have to rework if the approach is no good.)

_Go easy on me: it's my first PR._ :cold_sweat: