history: fixes and old Androids -> hashchange fallback