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
Merge pull request #116 from aravindhm/tanh

Add TanH = hyperbolic tangent activation layer (popular for sparse
autoencoders).
eliminate redundant code with get_split_blob_name method
change \n's to less distracting spaces in hard-coded proto strings
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