Fixes serialization of get-only dictionnaries

It is not required to have setter to serialize dictionnaries
Deserialization of dictionnaries shall use Add methods, not Items setter
Don't hide ArgumentExceptions inside SerializationExceptions
Don't expose reflection call
Use appropriate exception when add method does not exists
Checks for Add methods while checking for interfaces
Implements support for serializing LinkedList<>
Adds new tests and refactors old ones
Fixes GetCollectionElementType
Fixes IsEnumerable
Fixes IsDictionary