dprint_test() will now print current_symbol followed by an * for original variable when original_test is null.  We use null to indicate it was a literal in original test, which should be the same as current symbol.
Refactored unification constraint code.  add_identity() now called add_identity_and_unifications_to_test().  Created add_unification_constraint() which it calls.
Fixed problem with debug printing of disjunctions
dprint_test() will now print current_symbol followed by an * for original variable when original_test is null.  We use null to indicate it was a literal in original test, which should be the same as current symbol.
Refactored unification constraint code.  add_identity() now called add_identity_and_unifications_to_test().  Created add_unification_constraint() which it calls.
Fixed problem with debug printing of disjunctions
Fixed duplicate equality bindings in justifications caused by unifying constraints not being cleaned up when learning is off in a particular state.
Merge branch '9.5-unification-bug' of git@github.com:SoarGroup/soar.git into 9.5-unification-bug
Start of changes needed to fix unification issue with recursive calls to
chunk_instantiation from itself by updating grounding id's when the
match level changes with the call.
(1) Moved clearing ovar_gid table to exit points of chunk_instantiation
so that it's called before recursive calls to chunk_instantiation.
(2) Added bool parameter update_grounding_ids to chunk_instantiation. 
Set true when calling chunk_instantiation recursively to tell chunker to
update grounding id's in the ground condition to be relative to match
level of the new chunk it's attempting to build.
(3) Cached grounding wme in test no longer cleared because it may be
needed to update grounding ids in recursive calls to chunk_instantiation
Merge branch '9.5' into 9.5-unification-bug

* 9.5:
  Added propose operator to template test for debugging
  Chunk 22 was actually supposed to be part of chunk 21.  Combined.  Some superficial naming changes to test 19.
  Regenerated solutions for chunking unit tests that failed on jenkins
Removed unnecessary update_gid function
- Fixed bug caused by instantiated conditions having redundant
conditions.  Now corrects the chunk condition's instantianted_cond 
lists in the same way that it does the variablized list.
- Parameter added to fix_conditions() and
remove_redundancies_and_ungroundeds() to suppress deleting ungrounded
tests.  This is needed so that it can fix instantiations which are
filled with STIs that will appear ungrounded.
- Also merges instantiation conditions.  This is currently causing
crashes because instantiations don't have enough information to make the
same merge decisions that the variablized side does.  But the two lists
do need to be the same.  Does allow it generate the proper unifications
for this bug, but causes other chunking unit test to fail.
- Fixed bug when over_gid table wasn't being cleared in certain odd
cases by restoring clearing it in create_instantiation after
chunk_instantiation is called.
- Tests now increment and decrement wme refcount since we're keeping
them around in case grounding id's need updating because of match level
change
- Consolidated duplicate code into chunk_instantiation_cleanup()
- Changed the debug mode used for some instantiations printing
- Better debug printing for identity propagation.
- Fixed missing endline when debug printing empty variablization maps.
1 - merge_conditions now deletes corresponding condition.  Added a
condition pointer to condition struct to link variablized condition to
instantiated condition so that we can properly delete instantiated
conditions if the corresponding variablized condition is deleted when
merging conditions.
2 - Added function to clean up chunk_cond list.  Deletes chunk_conds
whose variablized condition has been deleted.  Bit tricky b/c 
variablized conditions may have NC and NCCs that do not have 
instantiated equivalents.
3 - Re-wrote reorder_instantiated_conditions.  Now that we have a link
between variablized conditions and instantiated ones, we can re-order in
a more straightforward way.
4 - When building chunk conditions for grounds, we no longer copy
relational tests.  Not sure if it was causing a problem, but there were
some duplicate tests being caused by it.  Flagged to check later.
Fixed crashing bug with negated conditions caused by missing link to their instantiated versions, which caused the chunking re-orderer (not rete reorderer) to delete instantiated negative condition.
Fixed bug caused by deleting production name when cleaning up at end of a successful chunk built.  Moved production name deletion to abort code.  Refactored chunking_done label to chunking_abort to be more accurate and avoid similar situations.
Fixed bug caused by deleting production name when cleaning up at end of
 a successful chunk built.  Moved production name deletion to abort 
 code.  Refactored chunking_done label to chunking_abort to be more 
 accurate and avoid similar situations.  Passes chunking unit tests 1-19
 NCCs and templates still need fixed.
Merge branch '9.5-unification-bug' of git@github.com:SoarGroup/soar.git into 9.5-unification-bug
Chunking unit tests will no longer fail if chunk name of answer chunk is 
different than Soar generates.  It will now consider both ignored and 
excised productions when determining if the correct chunks were
produced.  Also split up the NC and NCC tests into six different unit 
tests.
Fixed failing chunking unit tests #24.  Latest version puts constraints
in different but logically equivalent places.  Updated answer chunk to
handle.
Removed adding and removing wme refcount for cached copies of wme's that identity propagation uses.  Was crashing before but couldn't determine why.  Removing it causes all unit tests to pass again.  (except of course MiscTest::testSmemArithmetic and the smem isupport with learning tests which still need fixing).