Custom timeout message

As explained in issue #270, I need to be able to specify custom timeout message in a complex multi-promise process. Includes a test to cover custom messages.