coded up icf trainer, haven't tested yet.
added primitive persistence functions for ccv_icf training

I am starting to thinking about a systematic way of doing persistence while training
icfcreate pre learn runs now.
Merge remote branch 'liuliu/unstable'
updated to upstream version