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

@kloudkl, is there a cleaner way to index into `top_data` here and down on line 73?  E.g. using `Blob::offset()` seems like it'd be a lot cleaner/easier to read.