AskTimeoutException very non informative. Added more info to it.

This could be very useful for debug. Very often timeouts occurs inside external library and you are not able to attach failure handler to them and to understand what happens.
If code diff is too big then I could reduce it by removing a sender.
I have not found any applicable solution with a string representation of the message. So now, for message representation I use only class name instead of toString.