Sorry for the monster commit. Cleanup in many ways.

- Removed old to_reverse bollocks. Now compressing data is implemented in the
  Provider Superclass itself. I dont think there is need for reversable other
  providers. Additionaly CompositeProvider can be created now via the
  p1 | p2 syntax.
- Added a munin.helper module that support an AudioFileIterator, a function
  to help functions support either a song or an uid, and an pairup function
  to help creating attribute masks.
- Session now exposes most of the API needed ever by a user.
- EasySession contains a pre-configured attribute mask for easy use.
- Multithreaded/Non-blocking applications should run munin in a seperate thread
  and queue the recommendations out there.
- Fixed spelling of recommendations. D'oh.
- Adjusted all current Providers and DistanceFunctions to the new semantics.

TODO:

* Make all functions take uids or songs, but only return uids
* Make RuleIndex publicly available from Session

Longterm TODO:

* Implement all providers mentioned in munin/easy.py