Allow to specify values in Map collections not only with string keys

There is a possibility to access Map values like this:
```java
factory.classMap(SomeClass.class, TypeFactory.valueOf(Map.class, String.class, String.class))
    .field("classField", "['ValueOfTheMap']")
```

However it works only for Maps with string keys. This pull request fixes it, trying to convert the string provided in quotes ('ValueOfTheMap' in example above) to the Map key type (using valueOf() if it is available). So it would be possible to write something like this:
```java
factory.classMap(SomeClass.class, TypeFactory.valueOf(Map.class, Integer.class, String.class))
    .field("classField", "['0']");

factory.classMap(SomeClass.class, TypeFactory.valueOf(Map.class, SomeEnumType.class, String.class))
    .field("classField", "['ENUM_VALUE']")
```