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.
getSimpleName is buggy (esp for Scala), I'd recomment using either `Logging.simpleName(message)` or `message.getClass.getName`