Boris Johnson offers ‘full apology’ for breaking Covid rules