Fix #10: Include context properties when serializing to json

Fixes https://github.com/segmentio/Analytics.NET/issues/10. Includes unit tests to demonstrate the existing problem and the solution.

With this, we transmit the ip, language, and providers with the context:
```json
{
  "secret": "...",
  "batch": [
    {
      "action": "identify",
      "userId": "99",
      "traits": {
        
      },
      "timestamp": "2013-08-27T17:57:34.4840223Z",
      "context": {
        "ip": "12.212.12.49",
        "language": "fr",
        "providers": {
          "all": false,
          "Mixpanel": true,
          "Salesforce": true
        }
      }
    }
  ],
  "context": {
    "library": "analytics-.NET"
  }
}
```

Previously, the inner context would be empty. Note that I'm unclear if segmentio is expecting to get context on both the identify and the batch, but that's the way the existing code does it, this commit doesn't touch the structure.