Linear optimization and approximation: An introduction to the theoretical analysis and numerical treatment of semi-infinite programs