Create TrustedFuture (name TBD) a trusted 'less abstract' subclass of AbstractFuture that we can use to optimize setFuture and try to use it everywhere in util.concurrent.

Also, introduce AbstractFuture.done() a template method to aid in clearing state after a future completes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82683934