First implementation of category-matching stash code.

Eradicated all usage of IHCategory; "Categories" are now a dictionary mapping ItemCat enum values to an item-matching function (which is really all the IHCategory class ever did, anyway). This made it easier match categories in a chest to those in the inventory as we were key-ing on an enum rather than an object.

The code nearly works, too.  The only mystery is why an empty chest still matches the "Other" category.
Change SmartDeposit to use LINQ query, fix empty=OTHER bug.

Also, GetItemCopies() now returns null if there were no items to add the list.  But the Sort() function is again the only method to call GetItemCopies, and now returns immediately if it gets a null result.
Actually, OrganizeItems received the null list; now checks for it
add categories
Smart-loot skeleton
implement smartLoot (reverse quick stack)
reimplement smart-loot to behave more like a reverse quick-stack
remove IHCategory.cs
bump version to 1.1.1
update ModInfo info
Update Readme and CHANGES file.
Merge pull request #3 from Kf4btg/smart-stash

Smart stash