Clean and fast `readtable` implementation

This is an implementation of `readtable` that is much faster than our previous version and uses keyword arguments to provide a lot of additional functionality. Some of the functionality is still not in place, but I think this is close to the correct outline of all the features we should add to our `readtable` function.