Added ability to clear the result on the SettableListenableFuture
Also added implementation "ClearOnGetSettableListenableFuture" which automatically calls this clear function after a result has been returned (or an ExecutionException thrown).
I also cleaned up the javadocs around the Future param's, making the language better and more consistent.
This also reduces our usage of static strings for string verification, and instead uses "StringUtils.randomString".