save from python for net surgery

0. Scheme desired parameters.
1. Do surgery on the net through `net.params['name'][idx].data[...] = `.
2. Save post-operation net params by `net.save('fname')`.

Handwoven deep nets, anyone?
define fully-convolutional imagenet model
release net surgery example from #455
[docs] contact us on webpage
[fix] adding requirements.txt for web_demo. Closes #704
continuous integration of master build

check make

- all
- test
- lint

but not runtest or warn since they are not yet ported to master.
reapply namespace change
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
pycaffe: allow unspecified mean. Fixes #671.
pycaffe: reorder exceptions

It doesn't make sense to complain about input not being batch-sized if
it isn't even 4-d in the first place.
pycaffe: test channel_order and input_scale against None

An input_scale of zero should produce warnings/errors/infinities rather
than being the same as an input_scale of one. A channel_order of () or 0
should not be equivalent to the default ordering.
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