refactoring hashCode method
fixed a minor issue in plugin.xml that gives an error in Eclipse
refactoring: extracted the hashCode caching mechanism to Term and let subclasses to override computeHash() instead
refactored ConstrainedTerm to derive JavaSymbolicObject instead of Term
resolved new changes in the branch
addressed issues in code reviews
Merge pull request #515 from yilongli/refactoring-hashCode

Refactoring hash code