ignore some unused variables, two less style warnings
added dates/times to the parameter value coersion and pulled this into
a new generic prepare-sql-parameter
refactor update-records-from-* functions to utilize a single codepath
rather than reimplementing things differently in each

 * major clean up of normalized classes code - not many tests for
   this so if its being used by you please check carefully
 * should be a single update code path that each of the other methods
   feed into
 * less different iteration forms, I found almost all the iteration
   constructs in the language being used, opted to try an standardize
   on loop since it was already being used and tends to produce more
   efficient code
 * objects instead of unstructured lists
 * smaller, hopefully easier to understand functions
made direct and effective slot-definitions contain the same db-info hash
made the datetest table have a key column so that update-records-from-* works again
introduced slot-def kind predicates (eg: join-slot-p key-slot-p)
reworked fault-join-slot & fault-join-normalized-slot to do less work

slot-value-using class got a bit cleaner along the way.
added docstrings and some join-slot-info accessor helper functions
docstrings and small rewrite of chain-primary-keys to be iterative instead of recursive
Simplify slotdefs-for-slots-with-class by using existing function.
Refactoring join-qualifier for readability
Refactored find-all and build-object to be more readable, shorter and
less buggy

 * handles not double referencing inner-join tables now
 * better able to find table references and better at not duplicating
 * removed order-by and distinct from the select-list rather passing
   them as :order-by and :distinct
removed generate-selection-list in favor of a make-select-list
function and object

 * structures this data and simplifies interactions with it
 * speeds up build-objects (better than pre-refactor levels)
   by caching this data rather than recalculating each iteration
(SEMANTIC CHANGE) update-objects-joins now simpler and more predicatble

The previous default was to update only :deferred slots but the
docstring *said* it was doing :immediate slots.

The new default is to do :immediate slots which was the specification,
and provides some consistency with the rest of the system which
defaults to only operating on :immediate slots.

New behavior for SLOTS parameter:
 * :immediate (DEFAULT) - refresh join slots created with :retrieval
   :immediate
 * :deferred - refresh join slots created with :retrieval :deferred
 * :all,t - refresh all join slots regardless of :retrieval
 * list of symbols - which explicit slots to refresh
 * a single symobl - what slot to refresh

 * :immediate - refresh join slots created with :retrieval :immediate
   (the default)
 * :deferred - refresh join slots created with :retrieval :deferred
 * :all,t - refresh all join slots regardless of :retrieval
 * list of symbols - which explicit slots to refresh
 * a single symobl - what slot to refresh

Readability improvements:
 * split into a couple functions instead of one giant one.
 * standardize on loop instead of many different iteration constructs
Improved documentation of normalized classes and changelog entry