Review of Control and Energy Management Approaches in Micro-Grid Systems