Re-implement "heap tables" via projections from base table, add tests module.
This automatically optimizes away unused columns, and hopefully it will learn to optimize joins.
Update readme