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

Oh, also, I just realized this was in `common_layers.hpp`.  That doesn't seem like the right place for this.  Can we just put it in `argmax_layer.cpp` as `_int_Dtype_pair_greater()`?  I think that'd make more sense.