Added the LMLS cost function and generalized the cost function

I generalized the cost function: I believe it's better for everyone, who can customize the behaviour of the mlp

I added LMLS: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=478411&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D478411
What's going on here?  I'm assuming this is the "LMSL" loss function.  It's a bit odd to have this as a default, even if you do have earlier code that asserts that the loss function is in the set of supported loss functions.

```
if loss_function not in ['MSE', 'MAE', 'LMLS']:
    raise ValueError("the specified loss function is not implemented")
```

I would recommend something like the following:

```
if self.loss_function == 'MSE':
    return T.sqr(Y - Y_hat)
elif self.use_abs_loss or self.loss_function == 'MAE':
     return T.abs_(Y - Y_hat)
elif self.loss_function == 'LMLS':
     return T.log(1+0.5*T.sqr(Y - Y_hat))
else:
    raise ValueError("Loss function '%s' not supported", self.loss_function)
```