Egyptian police fired tear gas at dozens of protesters in Cairo who rallied against a controversial deal to hand two islands in the Red Sea to Saudi Arabia.