Allow for arbitrary DAGs using split layers (Take 2)

Now aware of existing in-place layers, fixing the bug from [#114](https://github.com/BVLC/caffe/pull/114). (Includes a unit test checking that the actual network architecture from imagenet.prototxt is unmodified.)