This patch adds the ability to get a DWARFDIE's children as an LLVM range.
This way we can use for range loops to iterate over them and we can use
LLVM's algorithms like llvm::all_of to query all children.
The implementation has to do some small shenanigans as the iterator
needs to store a DWARFDIE, but a DWARFDIE container is also a DWARFDIE
so it can't return the iterator by value. I just made the children getter a
templated function to avoid the cyclic dependency.
rather than a temeplate, what if it were code something like this: https://godbolt.org/z/3abeK3EPx ?