Hamiltonian Boundary Value Methods (Energy Conserving Discrete Line Integral Methods)