Added initial implementation for lists

Added initial implementation for lists. I had a lot of merge conflicts so it might be good to give this a once over. Couple of things to note. 

* The list type inference doesn't reuse the CsvTypeInference as it is just a list of values not a table
* Lists don't handle missing values yet.
* Definition list are parsed but no types are generated as yet (WIP)

Not ready to merge as yet