Fault and Error Tolerance in Neural Networks: A Review | Synapse