NILM Techniques for Intelligent Home Energy Management and Ambient Assisted Living: A Review