Israeli Prime Minister Benjamin Netanyahu has fired Defence Minister Yoav Gallant after months of clashes over domestic politics and Israel's war efforts.