Add three features to the DBN module.

- Add parameters `learn_rate_decays` and `learn_rate_minimums`, which
  allow for decreasing the learning after each epoch of fine-tuning.

- Allow `-1` as the value of the input and output layers of the neural
  network.  The shapes of `X` and `y` will then be used to determine
  those.

- Add support for processing sparse input data matrices.