Fix for getting incomplete types of table

Incomplete table includes:
    1. Tables with 1 row - this is a special case because single fields
    will be parsed into a dict, rather than a list as expected by the
    previous list comprehension
    2. Rows with empty fields
    3. Empty tables - this fails previously, but will return an empty
    dict now

Unit tests for each of these cases have also been written