Add Raygun.io reporting for site errors.

If a raygun api key is present in the config, we make a raygun client. Each request is decorated with it. Also, we wrap the site() invocation in a domain to catch & report any errors in the site machinery itself. The errors are re-thrown so the worker will be killed.