Review of ocean tidal, wave and thermal energy technologies