Moved WebAPI tests to mocks instead of real requests.

Original integration tests sent out actual emails using credentials from
a config file.  Now they use a mocked http request to SendGrid and we
test that the request is what we would expect.

This is part of #48

Closes #49
Properly handle HTTP errors from sendgrid

Closes #46