Add func to print free GPU memory
Tune Supervised and MultiModelLearning models

- Improve accuracy of Supervised y -- Y -- X -- U -- u type learning
  by making the X update rule X = nonlin(phiyT * Y + phixT * X)
- Save memory with MultiModelLearning by training and testing each model
  separately one after the other.
- Lower max q_i to keep larger nets stable
- Turn off data normalization preprocessing: MultiModel learning
  went up 89 % -> 96 % !
- Save memory by not making input a shared variable but a real
  function input
- Increase convergence iteration limit
Implement adaptive Tau, introduce stiffness

- Tau now adapts to row-wise change pressure in each state variable
- Stiffness controls how sensitive the system is to small variation.
  High stiffness is more stable in larger systems but smaller stiffness
  seems to achieve better classification accuracy on some classification
  tasks.