Approximation algorithms for general packing problems and their application to the multicast congestion problem