Don't expose reflection in exceptions
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