Physical and Numerical Modelling of Marine Renewable Energy Technologies, with Particular Focus on Tidal Stream and Tidal Range Devices