[feature] Split out table component

@stulees sorry about the big PR, please review. @donnapep FYI. Thanks.