Boston activist wins City Council race by a single vote after recount