Written prescription fees from vets will be capped at £21 and practices will have to publish price lists for services, the UK’s competition watchdog has said.