Added a fallback to handle cases when a non-string object is passed as a parameter value.

```UriTemplate.Resolve()``` method ignores non-string primitive types if they are passed as an argument to the following ```UriTemplate.SetParameter()``` method:

```c#
public void SetParameter(string name, object value);
```

I've added an extra fallback to the ```ProcessVariable()``` method to automatically use the default object.ToString() implementation to convert the passed object to a string instead of omitting it completely. Now the following scenario works:

```c#

var uriTemplate = new UriTemplate("https://api.mydomain.com/v2/location{?latitude}");
double latitude = 31.464;

uriTemplate.SetParameter("latitude", latitude);

var uri = uriTemplate.Resolve();

Assert.AreEqual("https://api.mydomain.com/v2/location?latitude=31.464", uri);
```

Using something like:

```c#
uriTemplate.SetParameter("latitude", latitude);
```

is a lot more concise when you have to regularly deal with non-string primitive types, instead of manually doing:

```c#
uriTemplate.SetParameter("latitude", latitude.ToString());
```

for each parameter.

I've also added a unit test ```ShouldResolveUriTemplateWithNonStringParameter()``` for this scenario.