alepar <> in Netty

now able to resolve array types to classes

making interface public, so that others can implement it jic

adding class resolver with disabled cache, fixing unit tests

use weak cache as default cache - it doesn't break class unloading providing multiple implementations for caching, each good for its own specific use-case

sharing classResolver cache across all CompactObjectInputStream's in the same way, as we did in ObjectDecoder

extracting class resolving role to separate interface

moving classLoader selection to constructor

there's a more general exception in the throws list already

loadClass() already queries the cache, so no point in redoing it in resolveClass()