Switch layer

This layers allows to have multiple input blobs and a selector (last blob) which will select from which input the data will be copied into the top.
All the inputs (bottoms 0 to n-2) should have the same shape, and the last bottom (n-1) contain n indices between 0 and n-2 to fill the top. 
Currently if the index is out of range it will fill the corresponding part of top with zeros, this allows to do block dropout, but just passing one input bottom and a selector with 0s and 1s (the blocks corresponding with 1s will be replaced with zeros)
@longjon do you think the logic is too complex?