German cabinet agrees to fine social media over hate speech