Parse metadata only if it sent as text

Sending metadata as text adds a lot of overhead over the network (due " encoding) and on clientside due manual JSON.parse.
Your controller can simply return the Metadata as json by specifying the contentType header:

i.e. 
```csharp
[HttpGet]
public HttpResponseMessage Metadata()
{
	var result = new HttpResponseMessage { Content = new StringContent(_contextProvider.Metadata())};
	result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
	return result;
 }
```