Ability to identify timeout errors

Allows Q.timeout message to be a custom Error object or sets error.code == 'ETIMEDOUT'

Fixes #513
Merge pull request #514 from pornel/customtimeout

Ability to identify timeout errors