Outline for new resource/material interfaces and notes.

first blush at sketching out new resource stack

cleaned up and simplified recipe library. tweaked/simplified public interfaces for Resource classes

made composition constructor private and added atom/mass basis factor funcs

removed unused scratch folder

renamed mat and res files to full length

updated all core code to use new resource classes.  Added extractRes method to resource interface to facilitate resourceBuff and market order splitting

Updated material tests. Added unit consts to Material.h. Made material constructor protected to facilitate testing via subclassing

fixed most of the tests. Fixed a bug in Material::extractComp. Created MatQuery class and used it to fix bug in Enrichment class

fixed units bug. Fixed material extract bug. Compositions must be in mass basis for mixing ratios to be meaningful - this will require a conversion before passing to the decay handler.

removed mix from composition class. made composition track atom and mass internally

fixed Material extract/absorb tests

material constructor records state in output db.

made resource subclasses friends of resource to facilitate modification of protected/private members outside of 'this' context in factory creation and cloning methods. Re-ordered implementation and header methods to be consistent.

added default arg for resource in transaction constructor

fixed enrichment bug. extended matquery to support fractions. Fixed self-parent-id bug for initially created resources

added ability to set resources as untracked in create factory funcs

Fixed bug in composition decay. Cleaned up resource heritage tracking - fixed it and added stateId to resource interface.

fixed bug from uninitialized class member POD var. Cleaned up decay handler a bit

fixed bug in prev_decay_time initialization in materials. Increased event manager buffering

fixed composition recording bug from uninitialized massv_. Fixed creation of untracked materials that should have been tracked. Added a blank composition to RL for use to prevent unnecessary allocations

changed global mat list to map for better performance.

added some performance tweaks to db recording

fixed bug where extraction didn't preserve tracked status

made Resource::stateId() protected and improved some doc comments

added a contains method to MatQuery and a test for it

removed units from resources table - it be kg by default for materials and generic-resources will have it in their own table
using composition instead of implementation inheritance for res tracking