Dual-Feasible Functions for Integer Programming and Combinatorial Optimization : Basics, Extensions and Applications (2016)