Add support for object-type properties.

I changed the property type-checking in the ToDocument method to use the
type of the property value, rather than the type of the property itself.
This allows someone to define a property as an 'object' in their generic
object, and the value can be string, integer (long) or bool. I think
it should also work if the value is a complex type but I'm not sure how
that would be possible if the type has to be determined during
JSON deserialisation.

Some tests are also included as part of ArangoDocumentTests.

I also sneaked in a fix to VersionTests as the ToInt() check fails for
versions less than 2.0 and I don't think that's intended.