Codecs canDecode correctly works for Lists and Arrays

canDecode previously didn't correctly test if a given class could be handled or not. It was failing for Arrays and Lists, because the compared class didn't match.

theClass is already a class, thus invoking getClass will lead to the wrong class
isInstance is wrong to be used as we're checking Class Objects and not some Instance Objects, thus isAssignableFrom is the correct way. I only changed it for the iterableCodec, but I expect the same is true for dbRefEncoder and codeWithScopeCodec.