JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

Backport of 8ff60020f

- Adding a version of TypeToken.where that replaces two parameters in one go
- Avoiding TypeToken type parameter replacement with wildcard bounds

Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

All reflection magic now :-(