Incremental support for ItemKNN and UserKNN item recommenders

Hi,

I managed to add support for incremental updates to classic item recommenders (UserKNN and ItemKNN).

Class hierarchy changes:
- KNN is now subclass of IncrementalItemRecommender

Limitations:
- Only works with cosine and cooccurrence correlations
- Slow neighbor retraining (though with some selectiveness)
- Not "bullet proof" tested, maybe some bugs are still present
- Lots of commits for rather few changes (i'm still new to git, sorry about that)

Literature:
http://www.springerlink.com/index/861k581047371165.pdf (no free pdf here...)
https://www.forth.gr/ics/isl/publications/paperlink/LNCS_Formatted_ISMIS-05_34880553.pdf


Please send you comments.
Regards,
João Vinagre