Please forgive me if this appears more like a rant than a feature request, but I have searched and can't find any explanation for why some error messages are displayed without any `displayName` from the component responsible - and this is driving me insane.

_Every_ component in my project has an explicit `displayName` specified.  I do this for debugging.

I am rendering a bunch of immutable props.  I changed one of the prop types from a `List` to a `Map` and I see:

> Warning: Using Maps as children is not yet fully supported. It is an experimental feature that might be removed. Convert it to a sequence / iterable of keyed ReactElements instead.

Obviously I missed something, which could be easily fixed if I knew _where_ it was - even just the component's name.

This message is not only frustrating, but it's taunting "I know where the problem is but I won't tell you!"-feel makes it infuriating.  Looking at the stacktrace behind it is useless as well because it's, as usual, a never-ending list of React function calls with no mention of any of my source files.

I have spent countless time hunting down errors like this that would have taken only moments if I knew the name of the component responsible.  It would be _infinitely more helpful_ if the `displayName` field appeared in more debug output.

* TODO: Test that a single child and an array with one item have the same key
 * pattern.
 */
var didWarnAboutMaps = false;
/**
 * Generate a key string that identifies a component within a set.
 *
 * @param {*} component A component that could contain a manual key.
 * @param {number} index Index that is used if a manual key is not provided.
 * @return {string}
 */
function getComponentKey(component, index) {
  
  
  if (component && typeof component === 'object' && component.key != null) {
    
    return KeyEscapeUtils.escape(component.key);
  }
  
  return index.toString(36);
}
/**
 * @param {?*} children Children tree container.
 * @param {!string} nameSoFar Name of the key path so far.
 * @param {!function} callback Callback to invoke with each child found.
 * @param {?*} traverseContext Used to pass information throughout the traversal
 * process.
 * @return {!number} The number of children in this subtree.
 */
function traverseAllChildrenImpl(