Allow specifying the extracted type of extracted values from array

```java        
Assertions.assertThat(RequestType.values()).extracting("code").usingElementComparator(new Comparator<Object>() {

            @Override
            public int compare(Object o1, Object o2)
            {
                return o1.toString().compareToIgnoreCase(o2.toString());
            }
        }).doesNotHaveDuplicates();
```

If code is a String, we can use extracting("code", String.class) and this return an ObjectArray<String>, so Comparator can be cast in the right way.