add several functionalities to mlp.py

1) allow to user define a different random seed, as you mentioned
2) allow to user define the dropout rate used for each layer
3) allow to user define the activation functions for each layer
4) constrain the norms of the columns of the weight matrices
5) change the update rule to match Hinton's dropout paper