[BREAKING CHANGE] Fix Node construction arguments

* Re-order the construction arguments of dm.Branch/LeafNodes
  so that the actually-used 'element' comes first.
* Fix various instances of incorrect documentation and remove
  duplication.
* Remove the 'length' argument from all LeafNodes except TextNode.

Future todo's:
* Remove the 'length' argument from TextNode (only used in tests)
* Remove the 'children' argument from BranchNode (only used in tests)

Change-Id: I81c60d4a40a39d65a57b18bd9c6bbc348825d4e2