libfdt: Update to latest pylibfdt implementation

The enhanced pylibfdt support in U-Boot needed for binman was a
placeholder while upstreaming of this work continued. This is now
complete, so bring in the changes and update the tools as needed.

There are quite a few changes since we decided to split the
implementation into three fdt classes instead of two.

The Fdt.del_node() method was unfortunately missed in this process and
will be dealt with later. It exists in U-Boot but not upstream.

Further syncing of libfdt probably needs to wait until we assess the
code-size impact of all the new checking code on SPL and possibly provide
a way to disable it.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
index d36179b..55baa38 100644
--- a/tools/dtoc/fdt.py
+++ b/tools/dtoc/fdt.py
@@ -287,7 +287,7 @@
         fdt_obj = self._fdt._fdt_obj
         if fdt_obj.setprop_u32(self.Offset(), prop_name, 0,
                                (libfdt.NOSPACE,)) == -libfdt.NOSPACE:
-            fdt_obj.open_into(fdt_obj.totalsize() + 1024)
+            fdt_obj.resize(fdt_obj.totalsize() + 1024)
             fdt_obj.setprop_u32(self.Offset(), prop_name, 0)
         self.props[prop_name] = Prop(self, -1, prop_name, '\0' * 4)
         self._fdt.Invalidate()