Non-Intrusive Load Monitoring: A Review