Small improvment of the XContentBuilder API

The XContentBuilder.map(Map<String, Object>) method could be modified to use a wildcard for value's type.

This could make the API slightly more convenient. 
For exemple, when I got a org.elasticsearch.common.settings.Settings and call getAsMap(), it returns a Map<String, String> that can not be passed to map(Map<String, Object>).

Users of the current API are forced to pass a Map<String, Object>, but any reference with such type can be passed to Map<String, ?>, so they will require no changes.
Consumers of a Map<String, ?> get Object as type for the entry.getValue(), as in XContentBuilder.writeMap(), so it will require no changes here.

This could be backported easily to other branches.