An all in one solution used to paginate, pull to refresh, display an empty state view and handle cashed Data UITableViewController