Numpy support

Here's NumPy support. I moved some things around for `tabular_data` and also added an exception if the type is unknown. Take a look and pull it in if it looks good.