add Adopt{Data,Diff} methods to blobs to enable "virtual copying"
change Adopt -> Share as suggested by kloudkl
Merge pull request #318 from jeffdonahue/blob-copy-by-reference

add Share{Data,Diff} methods to blobs to enable "virtual" copies

- reduce operations by not copying values
- spare memory by shared_ptrs
- simplify SplitLayer logic