refactoring, cleanup and bug fixes

BuildCache work to organize dependencies.
Fixed an issue where we were relying on fuzzy string matching for product names
Fixed dependency ordering issue for products

- Needs work on isolating one call per buildfile next...