Model predictive trajectory tracking control and thrust allocation for autonomous vessels