Moved details from header to cpp Refactored use of dynamic_cast into virtual calls on the *Node objects.
The namespaces are currently spit into user and system. Later we might add recognizing namespaces introduced by specific modules/extensions.