First set of refactorings and restructuring. Lots of code/files changed.  All unit tests pass except some new smem math tests.  All SVS tests pass except 9.  (Not sure what passes in Rosie's version of SVS.)
(1) Symbol struct changed from a monolithic struct to five different structs for each symbol types that inherit from a base symbol struct.  This is a major refactoring. Removed all uses of common macro that was previously used to access symbol data common to all symbol type. Refactored all code to use new symbol struct.  It's structured in a way that mimics the syntax of the union that the symbol struct used to use, so it's pretty straightforward.
(2) Changed all uses of 'Bool' version of booleans to use built-in bool.
Possible bug fix in trace.cpp migrated from 9.5. Was needed to fix a unit test that was failing.  Need to check out if truly a bug fix and behavior of code was not changed.
(3) Added member functions to symbol structure that do what other symbol utility functions used to do. Some code changed to use new functions. (More complete refactoring done in 9.5).
(4) Symbol refcount addition and removal both require the agent as a parameter now.  (Needed for other debug code that does refcount tracing.)  Code refactored to pass in the agent as a parameter.
(5) OutputManager maintains ten temporary strings that it rotates through as requested by other printing code.  This allows previous code that used the agent-based printed_output_string to stay the same, but now we can call more than one such function in a print statement without overwriting the buffer and getting duplicates.  Some print functions changed to use OM's temp strings, but more need to be. Removed printed_output_string from agent struct
(6) Removed mode to use std_out instead of print callbacks for debugging.  Can now do through output manager setting.
(7) Some functions moved to other files that made more sense, especially symbol-related functions.
(8) Moved a lot of #defines to kernel.h so developers can see in one place what can be changed.  May make compile time longer when changing one of these settings, but most people aren't likely to do that often.  Making them more visible seems like a worthwhile trade-off.
(9) Removed unnecessary SVS patch
Code now consistently uses lower-case true/false everywhere.  (except PCRE, some windows-specific code and some java/tcl stuff)
All code now consistently uses thisAgent for agent parameter.
- print() calls in kernel code now always use output manager. 
- All print functions that had previously used printed_output_strings from agent struct now use OM's temporary strings.  
- Moved tracking of current output column to output manager
- Added start_fresh_line() which will print a newline if the current column is not 1.  Now used in 2 or 3 places in the code that did it manually before.
- Some print functions no longer take an agent parameter (rhs_value_to_string, test_to_string)
- More coded refactored to use sym->to_string instead of symbol_to_string(sym)
- Refactored preference_type_indicator to preference_to_char
- Refactored print_trace to print_sysparam_trace (should be deprecated completely in 9.5)
- Refactored OM::print_trace_agent to OM::print_agent
- Refactored OM::print_trace_prefix_agent to OM::print_prefix_agent
- Removed ununused xml_test from rete.cpp
Fixed broken smem math unit tests that were caused by code from symtab.cpp that was accidentally deleted when merging in 9.5's symbtab.cpp.  All unit tests now pass again.
Output settings and column tracking now done on both a per agent basis and a global basis for std out printing.  Currently no mechanism in cli to change.  A compile time setting.
All code that uses temp string buffer now uses output_string_size constant instead of MAX_LEXEME_LENGTH*2+10.
- Removed code blocks related to USE_MACROS.  They have not been updated and many do not work.
- Removed USE_TCL, USE_X_DISPLAY deprecated code blocks.  They are no longer relevant.
- Removed obsolete _cplusplus defines.  The ones that actually did something still remain.
Renamed io.cpp to io_soar.cpp to match header file
Moved remaining functions in utilities.cpp to better files.
Some more reorganization
- Moved test-related code from various files to test.cpp
- Moved data structures and random code in gdatastructs.h to better places
- Added forward declarations and necessary includes
Moved rhs and action related data structures and code to rhs.cpp.  Moved rhs function related code to rhs_functions and rhs_functions_math.  Changed includes and added forward declarations to handle these changes.
Added rhs_functions.cpp/.h files forgotten in last commit
Merge remote-tracking branch 'origin/soar-9.4' into steven-9.4-schema-update

Conflicts:
	Core/SoarKernel/src/semantic_memory.cpp