Review of resistive switching mechanisms for memristive neuromorphic devices