fixed softmax num_cols bug and added weight initialization test

self.num_cols was not instance variable. Fixed bugs and added test that instantiates a Softmax layer with the different weight initialization schemes.
These tests won't raise the error, since `set_input_space` is not called during initialization. The following will make sure `set_input_space` is called:
```
MLP(nvis=5, layers=[Softmax(num_classes, 's', irange=0.1)])
MLP(nvis=5, layers=[Softmax(num_classes, 's', istdev=0.1)])
MLP(nvis=5, layers=[Softmax(num_classes, 's', sparse_init=2)])
```