Added JsonSerializerSettings to refitSettings

Refits will now use a jsonSerializerSettings object to control how to
serialize objects.

This allows the refit settings to be more finely tuned without abusing global state. That way if I want to set that my Refit for this api uses CamelCase, but for another api uses SnakeCase I don't have to worry about them colliding on each other. 
Hang on - there could be one potential problem: by initializing it with the default settings, any changes to the settings could have the unintended consequence of modifying the default settings:

```csharp
static readonly Lazy<JsonSerializerSettings> DefaultSettingsForMyApp = new Lazy(() => new JsonSerializerSetings { /* whatever */ });

// In some static constructor or whatever
JsonConvert.DefaultSettings = () => DefaultSettingsForMyApp.Value;

// Modifies default settings, but probably shouldn't
var gitHubApi = RestService.For<IGitHubApi>("https://api.github.com",
    new RefitSettings {
        JsonSerializerSettings = {
            ContractResolver = new SnakeCasePropertyNamesContractResolver() 
        }
    });
```

Can we copy/clone the default settings at the time we use them?