add SplitLayer and Net::AddSplits to transform shared bottom blobs into
split layers
make split_layer backward obey propagate_down
add split layer tests
add split layer tests
add split layer insertion tests; move split insertion code to util file
some cleanup
eliminate redundant code with get_split_blob_name method
change \n's to less distracting spaces in hard-coded proto strings
Merge pull request #116 from aravindhm/tanh

Add TanH = hyperbolic tangent activation layer (popular for sparse
autoencoders).
give first top split blob same name as bottom blob
allow in place computation of SplitLayer 0th top blob
change \" in test_split_layer to ' for readability
remove pointlessly duplicated CheckGradientExhaustive calls (I screwed
up when merging, I think)
fix comment typo
add test for layer with two tops that are inputs to multiple layers
remove redundant add_bottom (immediately cleared and then re-added)
get_split_blob_name returns a string to remove some verbosity
get rid of messy snprintf string concatenation
eliminate some cruft by relying on std::map default initializations
remove unnecessary include