Initial support for WebApi

Couldn't rebase webapi-refactor branch, copied code over instead.
Commit messages reproduced below:

Add WebApi project
Refactor RaygunClient and RaygunMessageBuilder into abstract base classes
Create default implementation

Add form data to WebApi request message
Handle empty IgnoredFormNames

Add a bunch of different ways to grab exception data from WebApi errors.
The framework code doesn't pass handled exceptions to the IExceptionLogger
so we have to do a lot of extra work to try catch them all.