Handle empty enumerable sets gracefully

The code was throwing exceptions when attempting to create a table from an empty set. This remedies that, as well as makes some minor variable naming changes for clarity, and changes the Columns property to an IList<object>, which seems to be adequate given that Rows is also an IList<object>.
Merge pull request #5 from Lumirris/patch-2

Handle empty enumerable sets gracefully