Datasource refactor

Refactoring the DataSet class into something more extensible:
1. Create as an interface independent of the underlying data source
2. Added 2 implementations for the DataSet interface, mysql and textfile
3. Refactor the C4.5 implementation to exploit the new design
4. DataSet has a metadata object that it's depending on the underlyin data source 
5. Separation of concerns.