[Fix] DataContractJsonSerializer fails serializing/deserializing collections

I fixed a few bugs and improved support for serializing/deserializing collection using DataContractJsonSerializer.

I added new tests for ensuring the proper serialization/deserialization of both non-generic and generic enumerables, collections and dictionnaries.

Modifications where tested (by hand, I admit) on .net runtime to ensure a compatible implementation. 

Now waiting for your feedback and review,