Various fixes re. type variables

Fixes #75, #82 and #87 
FYI, I started working on this, but will wait for unit tests before making a PR. What I currently have is:

```java
Writeables.Joiner.on(", ").wrap("<", "> ").appendTo(appendable, context, typeVariables);
```

which will only write the `<` and `>` if the `Iterable` is not empty.