Add support for deep initialization for BranchNodeModel

Passing the `{deep: true}` option on initialization will cause all
descendant attributes to be converted into an ppropriate node
instance.

Fix #93