Hamiltonian Descent Methods