Improved newWithSameType in standard augmentations

The previous implementation simply tried to create new instances through reflection, but this is not always possible as some implementation-specific classes are being used in the Java collections framework.

This improves by providing fallback collections: random access lists, lists, sets and maps.