Increased Node constness and removed type member method
* marked "solve" and "print" implementations as const
* converted member variables into constants where possible
* "type" member method is not necessary and partially defeats the purpose of declaring virtual members
Declared "{top|pop}Node" helper methods local to their compilation unit
* there is no reason for exposing them to be potentially linked to from other compilation units
Increased tree constness and added constructor aliases
* as with all Node classes the public member methods of the "Tree" class do not need to be non-const
* both constructors are more easily expressed as aliases of a single constructor that takes both the term and a pointer to a constant map instance
* the tree is now constructed during member initialization