add Net::Forward/Backward From/To
pycaffe: expose Forward/Backward From/To as kwargs start and end
comment in net.hpp to explain subtleties of From/To on DAGs
test consistency of From/To Forward/Backward
Extend the ArgMaxLayer to output top k results
Add the test cases for the mulitple top predictions argmax layer
Simplify the top-k argmax layer using std::sort
Use std::partial_sort in the ArgMaxLayer as suggested by @shuokay
Move compararing function from common_layers to argmax_layer
Refactor the accuracy layer with std::partial_sort
Add more test cases for the accuracy layer
Limit the comparison functions to have file scope
Include <utility> for pair in the accuracy layer
Fix style issues in accuracy & argmax layer
use Blob directly instead of shared_ptr for ConvolutionLayer::bias_multiplier_

This will make layer reshaping easier and more uniform, and is
consistent with col_buffer_.
use Blob directly instead of shared_ptr for InnerProductLayer::bias_multiplier_
use Blob directly instead of shared_ptr for PoolingLayer::max_idx_

Again, this is more uniform, and will simplify the implementation of
Reshape.
use Blob directly instead of shared_ptr for DropoutLayer::rand_vec_

This will simplify the implementation of Reshape by making allocation
automatic. There is no need for shared_ptr here, and this is more
uniform with buffers used by other layers.
use Blob directly instead of shared_ptr for DataLayer buffers
use Blob directly instead of shared_ptr for ImageDataLayer buffers