Handling ValidationExceptions in interceptors

Please do not merge it yet, it's a work in progress related with #858 

My idea here is to extract classes to better deal with exception handling so then we could reuse the exception handling code to develop that  `@ValidationInterceptor ` feature that @lucascs proposed.

I've implemented a `Try` class, similar to the scala's Try monad. Is not a proper monad here, but I think it's a nice abstraction to handle exceptions, what do you think? @lucascs @Turini @garcia-jj 
I'd also avoid to expose Guava's Optional in our public API.