Iterative Combinatorial Auctions: Theory and Practice