Tory rebel Dominic Grieve says MPs have a duty to stop a no-deal Brexit by backing another referendum.