A critical review of technologies for harnessing the power from flowing water using a hydrokinetic turbine to fulfill the energy need