Added support for complex property types

I needed support for logging structured complex data. Not just key/value fields.
The data had to be stored in mongodb as a document and not just a simple string value for indexing purposes.

For example 
```csharp
var customProperty = new
{
	Start = startDate,
	Finished = finishedDate,
	Input = new
	{
		Count = 100
	},
	Output = new
	{
		Count = 95
	}
};
```

In my code I have a IRawLayout implementation that creates a BsonDocument but I needed to change the appender to not try to create a BsonValue using the factory method, otherwise it throws an exception.
The test I added shows how to use it when it is stored in log4net properties.