Initial split of CSVparser from class App

This is an initial followup from #25. I split the csv related functions into its own CSVParser class. The specs still work and I have added a spec that covers the App. There are no specs that seem to cover the learning behaviour though, but this pull request should not change anything in that part of the App class.

Going forward, would you prefer to get many pull requests, slowly adapting the CSVParser or would you rather have me finishing it and then submitting all changes? Or I can keep pushing patches to this branch and they should show up in this pull request.