Add io module to allow creation of frames from querysets
Address preformance issues w.r.t related objects & dataframe loading

Stop using qs._meta.get_all_field_mames when no *fields arguments are used
as it retuns the names of related objects which has a disasterous effect
on performance

Use `list` instead of `numpy.core.records.fromrecords` as ``timeit`` showed that
this was siqnificantly faster