Perceptron-like Algorithms and Generalization Bounds for Learning to Rank