implementation of two linesearches in theano

one of them is based on only evaluating the function, the other
one respects the strong wolfe condition and implies also computing
the gradient with respect to the scalar we optimize.
pointer to the code I inspired myself from
Rop for FilterActs
Rop for pooling
missing cuda code for rop and WIP test file
add warning for the test
refactored corruption.py and added salt/pepper noise
fixed logical bug in corruption
small style fix
Documentation fix on TrainingAlgorithm.train
Good start on GSN code
Basic GSN functionality should be working
fixed small bugs
cleaned up my code a lot. Fixed bugs in gsn.py, added comments/questions for things I'm unsure about
removed unnecessary methods, implemented __call__ for gsn. No monitoring channels yet
Fixed some minor bugs in GSN code
I added a use_abs_loss variable to the mlp.linear layer so one can use the abs loss instead of the squared loss in the cost matrix
Added parzen distribution code
wrote a test
Added option to variable use_abs_loss on Linear layer of MLP