Update cache.py

`johnny.cache.get_tables_for_query_pre_16`: use a set as the base tables collection before entering recursion, thus avoiding a MemoryError should the WHERE descendant list go too deep.

This fully fixes #45 by preventing the top-most table list from growing more than it has to by being a `set`.

We ran into this problem because we had a bug that built a bad query. The query was valid, but the app broke when `johnny-cache` was in use.