Added support for mutual SSL auth

This pull request is really meant to start a conversation. I'll send a separate email with details.

I added the ability to submit an object that can take a WebRequest as
an argument and then configure it. This is what I build the Thali
logic on top of. I don't love this design but it will do for the moment.

Changed to latest json.net via nuget, bug fix & .gitignore

Nuget - All the cool kids use it, so I set up the project to use nuget to
get the latest version of json.net

.gitignore - Updated to ignore packages downloaded by nuget

empty responses - In the case of certain kinds of errors the server's
response might not have a response body which causes an exception because
GetJObject requires a response body to exist. Fixed this by adding
a constructor in CouchResponseObject that takes no arguments and
teaching CouchResponse to use that constructor if the response body
has no value.