Son of ResourceBuff

Named ResBuf.  The biggest difference is the buffer is now templated by the resource type (e.g. resource, material, product).  This drastically reduces the amount of casting gymnastics required of archetype devs.

I also changed `quantity()` to `qty()` and `count()` to `n()`.  I realize that these two changes might be a bit controversial, but we have a lot of really, really long names (esp including namespacing) in a lot of our api, and I think these changes will help to make archetype code more readable overall.
It doesn't matter in the sense that reordering will break tests that weren't already broken.  It just helps in diagnosis.  The tests are written so that the earlier tests test more fundamental things.  So if an earlier test is broken, than later ones failing might just be a symptom that is properly indicated by the earliest failing test.  I can clarify this in the note:  "Tests are ordered such that failing tests should be fixed from the top down - later tests are likely to become fixed by addressing previous tests' failures".