FIX: get_all_page fetch all tables according to NEXT_PAGE_TOKEN

Fix the issue where there are many tables in a dataset, get_all_tables() would only return a subset of all the tables. 
Also added cache option to get_all_tables(). 
Same thing here: `if do_fetch:`