Avoid using incomplete types with std containers

...which is explicitly supported by Boost.Container though, but we cannot use
boost::container::map here as Boost.Container is only available since Boost 1.48
and our base is 1.47 still.  However, there appears no need for Children to be
sorted, and std::unordered_map (and thus boost::unordered_map) requires that
pointers to elements are not invalidated by insertions, which we do require.

Change-Id: I70ad6f40318d2bafae53ebb67d84c1c89a7d68f6