Change NiftyProcessor.process() interface method to return a ListenableFuture

This is to support asynchronous processors (soon to be added to swift). The processor should return a ListenableFuture<Boolean> instead of a boolean, and set that future when the return value is ready.

Processors which are not going to do asynchronous processing (e.g. processors generated by standard thrift compiler) should just use Futures.immediateFuture() to construct their return values. The NiftyProcessorAdapters utility class will handle this automatically for processors deriving from the standard thrift TProcessor interface.