Faits :
A.
A._ est propriétaire de la parcelle n° 1101 du registre foncier de la commune de Vully-les-Lacs. Par permis de construire du 7 janvier 2014, il a obtenu l'autorisation d'ériger sur ce bien-fonds une villa individuelle, munie d'une toiture à deux pans.
Du 23 mai au 21 juin 2015, il a mis à l'enquête complémentaire certaines modifications de la villa prévue, en projetant notamment une toiture plate. Ce projet a suscité une opposition. Par décision du 21 juillet 2015, envoyée sous pli simple (courrier "A") au constructeur, la Municipalité a octroyé le permis de construire pour la modification des fenêtres et des aménagements extérieurs, mais a refusé la modification de la toiture, celle-ci devant être exécutée selon le permis de construire délivré le 7 janvier 2014. Par courrier du 21 juillet 2015 notifié en pli recommandé, la Municipalité a informé l'opposant qu'elle avait décidé, lors de sa séance du 14 juillet précédent, de refuser le permis de construire pour la toiture et d'accepter les modifications des fenêtres et des aménagements extérieurs. Elle a annexé à son courrier une copie dudit permis.
Le 15 septembre 2015, A._ a recouru contre la décision du 21 juillet 2015 auprès de la Cour de droit administratif et public du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal). Par avis du 23 octobre 2015, la Juge instructrice a enjoint A._ à produire l'original de l'enveloppe ayant contenu le prononcé attaqué. Elle a simultanément invité la Municipalité à fournir toutes pièces propres à démontrer la date de l'envoi de la décision querellée, respectivement de sa notification. La Municipalité a affirmé que le permis de construire du 21 juillet 2015 avait été adressé au recourant dès sa signature, sans produire de pièce. Quant à A._, il a indiqué n'avoir scanné qu'une face de l'enveloppe, ne pas avoir gardé l'original et avoir reçu la décision après les féries judiciaires, soit le lundi 17 août 2015.
Le Tribunal cantonal a déclaré le recours irrecevable pour cause de tardiveté, par arrêt du 4 novembre 2015.
B.
Agissant par les voies du recours en matière de droit public et du recours constitutionnel subsidiaire, A._ demande principalement au Tribunal fédéral d'annuler l'arrêt du 4 novembre 2015 et de déclarer recevable le recours déposé le 15 septembre 2015. Il conclut subsidiairement au renvoi de la cause à l'instance précédente pour nouvelle décision au sens des considérants.
Invités à se déterminer, le Tribunal cantonal et la Municipalité concluent au rejet du recours. Le recourant a répliqué par courrier du 18 février 2016.
Considérant en droit :
1.
Formé contre un arrêt final (art. 90 LTF) pris en dernière instance cantonale (art. 86 al. 1 let. d LTF) sur la base du droit public cantonal (art. 82 let. a LTF), le présent recours est en principe recevable comme recours en matière de droit public au sens des art. 82 ss LTF, aucune des exceptions prévues à l'art. 83 LTF n'étant réalisée. Le recourant est directement touché par le prononcé d'irrecevabilité de l'arrêt attaqué et a un intérêt digne de protection à en obtenir l'annulation. Il a dès lors qualité pour recourir au sens de l'art. 89 al. 1 LTF.
Les autres conditions de recevabilité du recours en matière de droit public sont réunies, ce qui entraîne l'irrecevabilité du recours constitutionnel subsidiaire (art. 113 LTF).
Le Tribunal cantonal ayant refusé d'entrer en matière sur le recours, seule la question de la recevabilité du recours cantonal peut être portée devant le Tribunal fédéral qui n'a, à ce stade, pas à examiner le fond de la contestation. En cas d'admission du recours, la cause devrait être renvoyée à l'instance précédente pour qu'elle entre en matière sur le recours et statue au fond.
2.
Le recourant reproche à la cour cantonale d'avoir violé l'art. 8 CC en retenant que, faute de preuve du contraire, la décision de permis de construire datée du 21 juillet 2015 avait été reçue au plus tard le jeudi 23 juillet 2015. Il prétend à l'inverse avoir reçu la décision le 17 août 2015, de sorte que le recours déposé le 15 septembre suivant serait recevable.
2.1. Le fardeau de la preuve de la notification d'un acte et de sa date incombe en principe à l'autorité qui entend en tirer une conséquence juridique (ATF 129 I 8 consid. 2.2 p. 10 et les arrêts cités). L'envoi sous pli simple ne permet en général pas d'établir que la communication est parvenue au destinataire (ATF 101 Ia 8 consid. 1). L'autorité supporte donc les conséquences de l'absence de preuve en ce sens que si la notification ou sa date sont contestées et qu'il existe effectivement un doute à ce sujet, il y a lieu de se fonder sur les déclarations du destinataire de l'envoi (ATF 124 V 400 consid. 2a) dont la bonne foi est présumée (arrêt 2C_570/2011 du 24 janvier 2012 consid. 4.3 et les arrêts cités).
2.2. En l'espèce, le Tribunal cantonal a considéré que lorsqu'une partie reconnaissait, comme en l'espèce, avoir reçu une décision communiquée par pli ordinaire, celle-ci était présumée lui être parvenue dans les délais usuels, à savoir, ici, le mercredi 22 juillet 2015, voire le jeudi 23 juillet 2015: cette présomption était toutefois réfragable, de sorte que le recourant pouvait tenter d'apporter la preuve du contraire. La cour cantonale a toutefois estimé qu'une telle preuve faisait défaut en l'espèce; la date d'envoi aurait pu figurer sur le haut de l'enveloppe (au-dessus du "A"), mais la copie de celle-ci, produite par le recourant, était tronquée à ce niveau.
Ce faisant, le Tribunal cantonal a méconnu les règles sur le fardeau de la preuve, en imposant au destinataire de prouver que la date de réception de la décision n'était pas le 23 juillet 2015, alors que la Municipalité a violé l'art. 115 de la loi du 4 décembre 1985 sur l'aménagement du territoire et des constructions (LATC; RSV 700.11) lui imposant de notifier la décision sous pli recommandé. Conformément à la jurisprudence précitée, la Municipalité supporte en effet les conséquences de l'absence de preuve de la date de notification de sa décision. Il existe certes un doute sur l'acheminement de la décision litigieuse. Dans un tel cas de figure qu'aurait permis d'éviter le respect de l'art. 115 LATC par l'expéditeur, il faut se fonder sur les déclarations du destinataire de l'envoi: celui-ci affirme avoir reçu la décision le 17 août 2015; il soutient que la Municipalité a attendu la fin des féries pour expédier sa décision et expose avoir contacté son avocat le 17 août 2015 pour le rencontrer le lendemain et signer une procuration à cette occasion, toutes circonstances qui n'apparaissent pas absolument invraisemblables. On peut ainsi présumer la bonne foi du recourant, de sorte qu'il y a lieu de retenir que la décision a été reçue le 17 août 2015.
Par conséquent, le dies a quo du délai de 30 jours prévu par l'art. 95 de la loi du 28 octobre 2008 sur la procédure administrative (LPA-VD; RSV 173.36) pour exercer son droit de recours est le 17 août 2015. Le recours déposé par le recourant le 15 septembre 2015 n'est donc pas tardif.
3.
Il s'ensuit que le recours est admis et l'arrêt attaqué annulé. La cause est renvoyée au Tribunal cantonal, afin qu'il statue sur les autres conditions de recevabilité du recours et, cas échéant, qu'il traite du fond du litige.
Il n'y a pas lieu de percevoir de frais judiciaires. (art. 66 al. 4 LTF). La Municipalité versera en revanche une indemnité à titre de dépens au recourant, qui obtient gain de cause avec l'assistance d'un avocat (art. 68 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours constitutionnel subsidiaire est irrecevable.
2.
Le recours en matière de droit public est admis. L'arrêt attaqué est annulé et la cause renvoyée au Tribunal cantonal du canton de Vaud pour nouvelle décision au sens des considérants.
3.
Il n'est pas perçu de frais judiciaires.
4.
Une indemnité de 1'500 francs est allouée au recourant, à titre de dépens, à charge de la Municipalité de Vully-les-Lacs.
5.
Le présent arrêt est communiqué aux mandataires du recourant et de la Municipalité de Vully-les-Lacs ainsi qu'au Tribunal cantonal du canton de Vaud, Cour de droit administratif et public.
Lausanne, le 26 avril 2016
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Fonjallaz
La Greffière : Tornay Schaller