[Engine-Campfire] Better stream error handling

For access denied or unauthorized errors, report to the user and don't
retry. For any other HTTP error, retry after five seconds.
[Engine-Campfire] Report an error on failure to send a message

The previous behavior was to leave the exception uncaught.
Merge branch 'stable'