SPARK-3926 [CORE] Reopened: result of JavaRDD collectAsMap() is not serializable

My original 'fix' didn't fix at all. Now, there's a unit test to check whether it works. Of the two options to really fix it -- copy the `Map` to a `java.util.HashMap`, or copy and modify Scala's implementation in `Wrappers.MapWrapper`, I went with the latter.
Hm, so it does. Maybe I misunderstood the original error. It's complaining about the _superclass_ (`MapWrapper`) not having a no-arg constructor? So copying the class works, since we no longer subclass `MapWrapper`, but the copy in `SerializableMapWrapper` need not define a no-arg constructor. OK, that line can be removed.