Added save_records to push monitor function and updated implementation of RNNs

Added save_records to push monitor function:
Initialize {batch, val, example, epoch, time} records of new monitor channels with those of old monitor channels in order to preserve and pass the training information, when re-training from the checkpoint. Now, it can be much easier to plot the whole curves. A user can use this functionality by setting save_records flag of push_monitor function into 1. 

Updated implementation of RNNs:
1. One could choose to use or not use the masks.
2. LSTM implementation has changed
3. included add_noise function which adds Gaussian noise to parameters
4. Recurrent weights are always orthogonally initialized using scipy.linalg.orth()


Guess so. I just had a look and it seems there's a bug: [This line](https://github.com/jych/pylearn2/blob/master_jych/pylearn2/sandbox/rnn/models/rnn.py#L246) should read `self._scan_updates.update(updates)` and then you should replace all `self._scan_updates.update(updates)` with `self._modify_updates(updates)`.