Add management of head in copy ctor and =operator.

I've added proper management of InternalNode *head to the Cue
C++ node binding's copy constructor and assignment operator. It just
uses the default copy constructor for InternalNode as we really only
need shallow copies of the objects.
Add deep copy ctor and default node ctors.

- I've added a deep copy constructor for the InternalNode C++
binding. This way when an InternalNode is copied its internal
node list gets copied as well.
- I've also added default constructors
for all the Node objects in order to be able to have a default
 safe state.
- I've changed the cue copy constructor to either copy the
InternalHead of the copied object if it is valid or assign it
null if it is not.
- Finally I've removed the capability for Nodes to have parents.
This code was not being used and it was not fully implemented.
Add pointer checks in InternalNode::createNodeList().
Merge pull request #66 from RickEyre/issue-50

Add management of head in copy ctor and =operator.