use standard guava Futures and ListenableFuture

removed custom version of guava Futures, awkward DescribedFuture, and migrated to native ListenableFuture

This results in less custom and awkward code to maintain, and a jar size reduction.  For example, this PR reduces jclouds-core jar from 736k to 712k

When this is merged, please merge the following cc @nacx
https://github.com/jclouds/jclouds-chef/tree/simplify-futures