Boris Johnson apologises in parliament over failure to declare more than £52,000 in earnings