Promise.reject() is not a constructor. Additionally, rejecting with an Error instead of a string means developer tools can show proper stack information. Related to #82