ArgMaxLayer with top k predictions

To meet the [needs for multiple top predictions](https://github.com/BVLC/caffe/issues/499#issuecomment-46939141) in #499 and #598, the argmax is extended to output the top k results.

Unlike the implementation of the top k accuracy layer in #531, the argmax layer doesn't assume the input probabilities to be sorted. It picks the top k results with a priority queue.
 
Candidate reviewers:
@sguada who authored #421 Argmax layer
@robwhess who authored #531 Top-k accuracy
@shuokay who asked #598 How to make top-k prediction

Why not ditch this function (which appears twice...), switch the order of pairs, and use the built-in lexicographic comparison?