Self-learning Machines based on Hamiltonian Echo Backpropagation