to facilitate higher reuse, remove guava and jax-rs deps

Based on discussions, it seems guava is not a good candidate as a dependency for highly reusable software.  While switching off guava adds ~200 lines of code, it removes risk of version conflicts systemic to the guava ecosystem.  Eventhough JAX-RS is a relatively stable dep, there's a new version 2.0 which implies another possible version clash.

This change introduces new `@RequestLine` and `@Headers` annotations and moves jax-rs support to an optional module.

ex.
```
interface GitHub {
  @RequestLine("GET /repos/{owner}/{repo}/contributors")
  @Headers({
    "Accept: application/json",
    "User-Agent: feign/2.0.0",
  })
  List<Contributor> contributors(@Named("owner") String owner, @Named("repo") String repo);
}
```
cc @allenxwang @benjchristensen