Weiner launches long-shot mayoral bid