US President Donald Trump and North Korean leader Kim Jong Un have met in Singapore and signed a historic agreement.