New Features:
- wknml now uses a streaming NML reader and writer, so large NML files should no longer cause memory problems.
- Optional property support: Optional properties may be omitted and will no longer be persisted when dumping the NML, which allows to write smaller, more compact NML files. For example, only the `id`, `radius`, and `position` of a `Node` are mandatory, the remaining 6 properties are optional and can be omitted.
Breaking Changes:
- `parse_nml(file)` now takes a file instance as its parameter.
- `dump_nml` has been renamed to `write_nml(file, nml)` which now takes a file instance as the first parameter and an NML instance as the second. The method will take care of writing the dump of `nml` to the `file`.
- A `Group` now needs a third parameter which contains its children and is of type `List[Group]`, so `[]` if the group has no children.