Safeguarding, autostacking, deprioritization -

 - Made `CollapseInventory()` public
 - Autostacking in the `CollapseInventory()` function
 - Changed `MatchesMaterial()` to have set groups take precedence over default ones
 - Added pre and post checking (safeguards)
 - Added autostacking
 - Reversed de-prioritization for inheritances in `FetchPlayerPreferencesClass()` as this can have adverse effects when inheriting.  See https://trello.com/c/UHTCL66J